查看当前 Git 仓库中的文件
想看什么
| 想看什么 | 推荐命令 | 说明 |
|---|---|---|
| 已被 Git 跟踪的文件 | git ls-files | 只看已经纳入版本控制的文件 |
| 已修改但还没暂存的文件 | git diff --name-only | 只列出工作区相对暂存区的改动 |
| 已经暂存的文件 | git diff --cached --name-only | 只看下一次提交会包含哪些文件 |
| 未跟踪文件 | git ls-files --others --exclude-standard | 排除 .gitignore 等忽略规则 |
| 已忽略文件 | git ls-files --others -i --exclude-standard | 只看被忽略的未跟踪文件 |
| 一次看整体状态 | git status --short --ignored | 最适合日常排查 |
推荐命令
查看已跟踪文件
git ls-files
查看未跟踪文件
git ls-files --others --exclude-standard
查看已忽略文件
git ls-files --others -i --exclude-standard
一次查看已修改、已暂存、未跟踪和已忽略文件
git status --short --ignored
输出怎么看
git status --short 的前两列分别表示“暂存区状态”和“工作区状态”:
M file.txt:文件已经暂存了修改。M file.txt:文件在工作区被修改,但还没暂存。A file.txt:新文件已经暂存。?? file.txt:未跟踪文件。!! file.txt:已忽略文件。
如果你只关心文件列表而不关心内容差异,优先用 --name-only 这类命令会更快。
常用组合
git status --short
git diff --name-only
git diff --cached --name-only
git check-ignore -v path/to/file
git diff --name-only适合确认哪些已跟踪文件还没暂存。git diff --cached --name-only适合提交前再核对一次。git check-ignore -v path/to/file会告诉你某个文件为什么被忽略,以及匹配到了哪条规则。
注意事项
git ls-files不会显示未跟踪文件,也不会直接告诉你文件有没有改动。git status默认不显示已忽略文件;如果想一起看,记得加--ignored。- 如果你怀疑文件“消失了”,先用
git status判断它是被删除、未跟踪,还是被忽略,而不是只看git ls-files。