假设我有一个文件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
的差异
这对我来说是最直观的,无论如何,我怎么能在第一时间达到我想要的?
答案 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