在git中,如何找出目录中的哪些文件自提交以来没有改变?
答案 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~6
或REV=branch-name~~