检查git中的提交系列中是否修改了其他文件

时间:2013-08-17 17:57:03

标签: git

假设我有一个文件mocky.cpp,我想列出修改文件的提交,并列出这些提交所触及的其他文件。 所以我尝试以下方法:

git log --name-only -- mocky.cpp

我得到了一个提交列表,这很好,很奇怪,但是,除mocky.cpp之外,所有提交都不会修改文件。我检查了其中一个,例如,e013aac,w / git show e013aac,我发现它也改变了testy.hpp。 此外,我发现git show e013aac -- mocky.cpp仅输出mocky.cpp的差异,但不输出testy.cpp的差异 这对我来说是最直观的,无论如何,我怎么能在第一时间达到我想要的?

2 个答案:

答案 0 :(得分:2)

我不知道这是否是最佳做法,但下面的命令可能符合您的意图:

for SHA in $(git log --format='%H' your_file.cpp) ; do git diff-tree --name-only -r $SHA ; done

答案 1 :(得分:1)

尝试:

git log --format=%H -- mocky.cpp | xargs git show --stat

或者根据您的需要进行修改,例如:

git log --format=%H -- mocky.cpp | xargs git show --name-only