首页/开发/Git 与协作速查/git ls-files 列出索引文件
Git 基础与命令88 条

git ls-files 列出索引文件

查看暂存区(索引)中的跟踪文件:--stage 显示模式与对象哈希,-o 列未跟踪、-m 列已修改,适合核对提交范围。

Git 与协作速查开发更新于 2026-10-13

ls-files 看的是索引

它列出索引(暂存区)中的跟踪文件,也就是「下一次提交会包含哪些路径」。加上选项后还能看到未跟踪文件、已修改文件,或者索引里的文件模式与对象哈希。判断某个文件到底会不会进入提交,看索引视角比浏览磁盘目录可靠得多。

基本信息

默认输出索引中的全部跟踪文件
未跟踪文件-o,配合 --exclude-standard 排除忽略项
已修改文件-m 列出内容有变化的文件
细节信息--stage 显示文件模式与对象哈希
路径基准输出路径相对于仓库根目录

典型使用场景

  • 提交前核对本次会包含哪些文件
  • 找出被忽略规则漏掉、意外进入索引的文件
  • 查看暂存区里的对象哈希,确认暂存的是哪一版内容
  • 排查删除操作是否已经记录进索引
  • 脚本中生成待处理文件清单

常用示例

常用示例
git ls-files                        # 列出索引中的跟踪文件
git ls-files --stage | head          # 查看文件模式与对象哈希
git ls-files -o --exclude-standard   # 列出未跟踪且未被忽略的文件
git ls-files -m                      # 列出内容已变化的文件

选项读法

选项含义用途
无选项索引中的跟踪文件确认提交范围
-o未跟踪文件查找漏添加或漏忽略的文件
-m已修改文件查看工作区中的变化
--stage模式与对象哈希确认暂存的具体内容
磁盘上存在文件不代表它被跟踪;判断某个文件会不会进提交,要看索引视角而不是浏览目录。
输出路径相对仓库根目录,脚本拼接目标路径时要注意基准,避免在子目录里执行时出现路径错位。

提交前核对清单

  • 用索引列表确认要提交的文件都在其中
  • 检查未跟踪列表里是否有本该加入的文件
  • 确认被忽略的文件确实不需要提交
  • 对照改动列表检查删除操作是否已经记录

易错点

  • 输出路径相对仓库根,脚本拼接目标路径时容易基准错位
  • 已经删除但尚未记录删除的条目仍会出现在修改列表,删除同样需要写进索引
  • 只用浏览目录的方式判断提交范围,会漏掉被忽略规则覆盖的文件
  • 在子目录执行时输出仍以仓库根为基准,直接当相对路径使用会出错

数据来源与参考

  • Git 官方文档:git-ls-files
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌