Command Reference

git-ls-files 教程

解释如何用 git-ls-files 列出索引和工作区里的受跟踪路径。

适合谁看
  • 已经会基本提交和分支操作的开发者
  • 想理解命令边界与风险的人
前置知识
  • 知道工作区、暂存区、提交的基本关系
  • 能读懂 `git status` 和简单历史图
常见风险
  • 误把本地整理命令用到共享历史
  • 在没确认恢复路径前直接继续改写历史

一句话理解

git-ls-files 用于列出索引和工作区里的受跟踪路径。

什么时候适合用

  • 当你需要列出索引和工作区里的受跟踪路径
  • 当你想把这类操作做成稳定流程而不是手工重复
  • 当你需要更准确地理解 Git 在这一步到底记录了什么

基本示例

git ls-files

读这条命令时最该注意什么

底层命令更接近实现细节,读写前要先确认自己是不是只需要一个更安全的高层命令。

一个更稳的实践建议

先把它当作只读检查工具理解,再决定是否进入修改引用或索引的用法。

补充理解角度

  • 理解底层对象和引用
  • 写脚本或排查高级问题
  • 验证 Git 内部状态

这条命令在流程里解决什么问题

git ls-files 解决的是"需要查看索引中有哪些文件"的问题。它列出 Git 索引(暂存区)中所有已跟踪的文件路径,是了解仓库文件跟踪状态的快速方式。

典型用例

  • 想快速查看仓库中所有被 Git 跟踪的文件列表,直接运行 git ls-files,比 git status 更简洁。
  • 在脚本中遍历所有已跟踪文件进行处理,用 git ls-files 输出文件列表供后续命令使用。
  • git ls-files --others --ignored 查看被 .gitignore 忽略的文件,排查忽略规则是否生效。

图例理解

列出索引中的文件ls-files 读取索引中的文件条目,输出文件路径列表。它是纯只读操作,不会修改索引或工作区。
索引内容
索引中的文件条目跟踪状态忽略规则
产出
已跟踪文件列表未跟踪文件被忽略文件暂存状态
ls-files 只读取索引信息,不修改任何内容。它是了解仓库文件跟踪状态的纯查询工具。

特殊情况与边界

  • git ls-files 是纯只读命令,不会修改索引、工作区或仓库的任何内容。
  • 默认只显示已跟踪的文件,需要用 --others 才能显示未跟踪文件,用 --deleted 显示已删除但仍在索引中的文件。
  • 输出的是相对于仓库根目录的路径,不受当前工作目录影响。
  • git status 不同,ls-files 不会比较工作区和索引的差异,它只展示索引中的内容。
  • 在脚本中使用时,建议加 -z 以 null 字符分隔输出,避免文件名中包含空格或特殊字符导致解析错误。

延伸阅读

继续搭配 git status、git log、git show 一起看,通常更容易判断这条命令对历史、索引和工作区分别造成了什么影响。