Git 如何查找自提交后未更改的文件?
在git中,如何找出目录中的哪些文件在某些提交之后没有更改?使用Git 如何查找自提交后未更改的文件?,git,Git,在git中,如何找出目录中的哪些文件在某些提交之后没有更改?使用git diff--name only$REV获取已更改的文件列表。使用git-C$(git rev parse--show top level)ls tree-r HEAD--name only获取所有文件的列表。使用grep分隔集合: git diff ${REV?must specify a REV} --name-only > /tmp/list git -C $(git rev-parse --show-toplev
git diff--name only$REV
获取已更改的文件列表。使用git-C$(git rev parse--show top level)ls tree-r HEAD--name only
获取所有文件的列表。使用grep
分隔集合:
git diff ${REV?must specify a REV} --name-only > /tmp/list
git -C $(git rev-parse --show-toplevel) ls-tree -r HEAD --name-only |
grep -f /tmp/list -v
在执行这些命令之前,您需要在变量rev中指定rev。例如,
REV=HEAD~6
或REV=branch name~~~
IMO生成列表的简单方法是以下命令链:
git ls-files --full-name | grep -v "$(git diff --name-only <REF>)"
git ls文件--全名| grep-v“$(git diff--仅限名称)”
其中
是提交的哈希值,您希望从中获得未更改的文件
git ls files
如您所料,列出所有版本化文件,然后grep指定提交后未在更改文件列表中的所有文件。使用适用于一个文件的命令git status
,但如何找出自提交后未更改的所有文件!你应该说‘学会使用git’:)我在寻找更简单的方法,但我想这不是一个常见的任务。你不使用git ls文件有什么原因吗?然后可以使用git ls files | grep-v$(git diff--name only)
生成一个列表。没有理由,我只是更熟悉ls-tree。请注意,这要求您位于存储库的顶层,因为git ls files
只会列出工作目录中及其下的文件。