2013-08-17 75 views
2

假設我有一個文件mocky.cpp,我想列出修改該文件的提交,並列出這些提交所觸及的另一個文件。 所以我嘗試以下方法:檢查其他文件是否在git中的提交系列中被修改

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

我收到提交列表,這是很好的,奇怪的,但是,所有提交不修改,除了從mocky.cpp的文件。我檢查其中的一個,比如e013aac,w/git show e013aac,我發現它也改變了testy.hpp。 此外,我發現git show e013aac -- mocky.cpp只輸出mocky.cpp的差異,但不是testy.cpp
這對我來說是非常直觀的,無論如何,我怎麼能實現我想要的東西?

回答

1

嘗試:

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

或修改您的需求,如:

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

我不知道這是不是最好的實踐的研究,但下面的命令可能會做你想要什麼:

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