我正在使用 git ls-files
命令列出 Git 代码库中所有被 Git 索引的文件,但是结果中显示了一些已删除的文件。
我正在寻找一个 Git 命令,只列出 Git 代码库中未被删除的文件。
我正在使用 git ls-files
命令列出 Git 代码库中所有被 Git 索引的文件,但是结果中显示了一些已删除的文件。
我正在寻找一个 Git 命令,只列出 Git 代码库中未被删除的文件。
阅读文档并设置所需标志。
https://git-scm.com/docs/git-ls-files
您正在寻找这个内容:
git ls-files -o --exclude-standard
-c / - -cached
显示缓存的文件在输出中(默认)
-d / --deleted
显示已删除的文件在输出中
-m / --modified
显示修改过的文件在输出中
-o / --others
显示其他(即未跟踪)文件在输出中
-i / --ignored
仅显示被忽略的文件在输出中。当显示索引中的文件时,仅打印符合排除模式的文件。当显示“其他”文件时,仅显示符合排除模式的文件。
另一种选择是使用git diff
和git-filter
git diff --name-only --diff-filter=A --cached
--diff-filter=[(A|C|D|M|R|T|U|X|B)…[*]]
Select only files that are Added (A) Copied (C) Deleted (D) Modified (M) Renamed (R)
git ls-files -o -m --exclude-standard | grep -vE "^$(git ls-files -d | paste -sd "|" -)$"
说明:git ls-files --other
- 显示输出中的其他(即未跟踪)文件
- git ls-files --modified
- 显示输出中的修改过的文件
- git ls-files
- 显示输出中的已删除的文件
- git ls-files --exclude-standard
- 添加标准Git排除:每个目录中的.git/info/exclude、.gitignore以及用户的全局排除文件。
- grep -vE PATTERN
- 根据给定的模式从输出中排除
- paste -sd "|" -
将输出按行用'|'符号连接
git ls-files -o --exclude-standard
- CodeWizard