获取git merge / git merge工具后的修改文件列表

时间:2017-08-07 23:22:51

标签: git merge diff mergetool

我有一个master,branch1和branch2。

我使用'git merge'然后'git mergetool'将delta(即master和branch2之间的更改)合并到branch1中。

现在我想在branch1下识别所有修改过的文件作为上述合并的结果,并将所有修改过的文件复制到一个单独的文件夹中发送给某人。

这样做的正确方法是什么?

谢谢! p / s:我的道歉,如果这是一个太微不足道的问题,我是GIT的新手

1 个答案:

答案 0 :(得分:0)

您可以尝试:

git diff --name-only branch1^ branch1
# or :
git diff --name-status branch1^ branch1

解释:

  1. 通常,git diff [commit1] [commit2]将适用于任何两个提交:

    git diff branch1 master
    git diff tag/v1.0 branch2
    git diff eacf32bb8 branch1
    # etc ...
    
  2. 使用--name-only--name-status选项,git diff只显示两次提交之间已修改文件的列表(使用--name-status,它会添加一个在文件名前面加A, M or D字母,表示它是A dded,M odified还是D eleted

  3. 处理合并提交时,它有两个父项:

    ...*--*--*--*--A---M  <- branch1
           \          /
            *--*--*--B
    

    在上面的草图中,AM的第一个父级,B是其第二个父级。
    branch1^指定Abranch1的第一个父级),branch1^2将指定Bbranch1的第二个父级)。