Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何查找自提交后未更改的文件?_Git - Fatal编程技术网

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中,如何找出目录中的哪些文件在某些提交之后没有更改?

使用
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
只会列出工作目录中及其下的文件。