Проверьте, были ли другие файлы изменены в серии фиксаций в git

Предположим, у меня есть файл mocky.cpp , я хотел бы перечислить коммиты, которые изменили файл, а также перечислить другие файлы, которые были затронуты этими коммитами. Поэтому я стараюсь:

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

Я получаю список коммитов, это приятно, странно, однако, все коммиты не изменяют файл, кроме mocky.cpp . Я проверяю один из них, скажем, e013aac, w / git show e013aac и я узнаю, что он также меняет testy.hpp . Более того, я обнаружил, что git show e013aac -- mocky.cpp выводит только diff для mocky.cpp но не для testy.cpp
В любом случае, это наиболее противоречиво для меня, как я мог добиться того, чего хотел?

Пытаться:

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

Или измените его для ваших потребностей, таких как:

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

Я не знаю, лучше ли это, но приведенная ниже команда может делать то, что вы намереваетесь:

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