git:获取沿一个特定文件修改过的文件列表

时间:2017-03-01 09:02:18

标签: git git-log

我想检查哪些文件与一个特定文件同时被修改。具体来说,我想获取此特定文件的历史记录,并且对于此历史记录的每次提交,我想知道哪些文件受到影响。

当我执行git log --name-only时,我会获得每次提交的完整提交历史记录以及已修改的文件列表。

现在,如果我git log <file>,我会获得涉及此特定文件的提交的历史记录。

但是,

git log --name-only <file>不包括每个提交修改的文件的完整列表。相反,它只向我显示<file>,说实话是没用的。 有没有办法让这个命令包含所有文件?

3 个答案:

答案 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后 -

  1. 右键单击该文件,然后转到菜单中的TortoiseGit。

  2. 点击显示日志

  3. 它将显示该文件的Commit历史以及这些提交中包含的其他文件。它还会显示文件中的更改。