列出git merge commit中的所有修改文件 - 即使是快速转发

时间:2013-02-05 21:19:23

标签: git merge git-branch git-merge

我在想是否有一种方法,当我将一个分支合并到另一个分支时,所有已更改的文件都列在我的提交消息中,而不仅仅是在两个分支中都被修改的那些。 通过查看合并提交,这将使我更好地了解分支中的更改内容。 有没有办法做到这一点?

3 个答案:

答案 0 :(得分:58)

我不知道如何在提交消息中执行此操作。但是在合并之后,这将给出受合并提交影响的所有文件的名称:

git log -m --name-only

仅用于提交的文件名列表:

git log -m -1 --name-only --pretty="format:" <Merge SHA>

由于合并有一些空白区域有两个父母,但可以很容易地删除。

答案 1 :(得分:11)

您还可以使用diff命令查看任意两次提交之间的差异。如果分支尚未合并,您可以指定分支名称并进行比较,否则您可能需要找到它们分散的位置like so之前的最后一次提交合并回来。

git diff --name-status <commit> <commit>
  

-name-status仅显示已更改文件的名称和状态。

答案 2 :(得分:0)

假设您具有合并提交的SHA,然后 git diff --name-only <SHA>^1 <SHA>