如何查找自提交以来哪些文件没有更改?

时间:2014-07-21 13:06:56

标签: git

在git中,如何找出目录中的哪些文件自提交以来没有改变?

2 个答案:

答案 0 :(得分:4)

IMO生成列表的一种更简单的方法是以下命令链:

git ls-files --full-name | grep -v "$(git diff --name-only <REF>)"

其中<REF>是您希望从中获取未更改文件的提交的哈希值。


正如您所料,

git ls-files列出所有版本化文件,然后grep所有自指定提交以来不在更改文件列表中的文件。

答案 1 :(得分:3)

使用git diff --name-only $REV获取已更改的文件列表。使用git -C $(git rev-parse --show-toplevel) 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=HEAD~6REV=branch-name~~