跳到主要内容

查看当前 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