我想检查哪些文件与一个特定文件同时被修改。具体来说,我想获取此特定文件的历史记录,并且对于此历史记录的每次提交,我想知道哪些文件受到影响。
当我执行git log --name-only
时,我会获得每次提交的完整提交历史记录以及已修改的文件列表。
现在,如果我git log <file>
,我会获得涉及此特定文件的提交的历史记录。
git log --name-only <file>
不包括每个提交修改的文件的完整列表。相反,它只向我显示<file>
,说实话是没用的。
有没有办法让这个命令包含所有文件?
答案 0 :(得分:2)
您可以管道这两个命令。
$ git log --format="%h" <file-name> | xargs git show --name-only
这里:
git log --format =“%h”:选择更改给定文件的commit-sha
xargs git show --name-only :将选定的提交作为参数并显示完整更改的文件名。
答案 1 :(得分:1)
使用git-rev-list
列出影响特定路径的提交,然后使用git-show
来获取每次提交中修改的所有文件:
git show --name-only $(git rev-list HEAD -- PATH)
答案 2 :(得分:0)
您也可以使用TortoiseGit工具(基于UI的Git工具,类似于TortoiseSVN)。
安装TortoiseGit后 -
右键单击该文件,然后转到菜单中的TortoiseGit。
点击显示日志。
它将显示该文件的Commit历史以及这些提交中包含的其他文件。它还会显示文件中的更改。