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 | 模式与对象哈希 | 确认暂存的具体内容 |
磁盘上存在文件不代表它被跟踪;判断某个文件会不会进提交,要看索引视角而不是浏览目录。
输出路径相对仓库根目录,脚本拼接目标路径时要注意基准,避免在子目录里执行时出现路径错位。
提交前核对清单
- 用索引列表确认要提交的文件都在其中
- 检查未跟踪列表里是否有本该加入的文件
- 确认被忽略的文件确实不需要提交
- 对照改动列表检查删除操作是否已经记录