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

git: get the list of files that have been modified along one specific file

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

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

现在,如果我这样做 git log <file>,我将获得涉及该特定文件的提交历史记录。

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

您可以通过管道传输这两个命令。

$ git log --format="%h" <file-name> | xargs git show --name-only

此处:

git log --format="%h" : select 给定文件被更改的 commit-sha

xargs git show --name-only:将 selected 提交作为参数并显示完整的更改文件名。

使用git-rev-list列出影响特定路径的提交,然后git-show获取每个提交中修改的所有文件:

git show --name-only $(git rev-list HEAD -- PATH)

您也可以使用 TortoiseGit 工具(Git 基于 UI 的工具,类似于 TortoiseSVN)。

安装 Tortoise 后Git-

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

  2. 单击显示日志

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