忽略git diff中的合并

时间:2015-10-09 19:02:18

标签: git git-merge

我想从一个忽略其分支中的合并的标签做一个git diff。 让我们用一个简单的例子解释我想要的东西

#                               ~+A                             git diff running here                                                                                                                                                                       
#Branch B ______________________|_____________________________________|                                                                                                                                                                                                                                     
#                       |       ^           |       |                                                                                                                                                                           
#                       +Z      |           +Y      |                                                                                                                                                                                   
#                       tag1    |merge A            Merge B                                                                                                                                                                             
#                               |in B               |in A                                                                                                                                                                                           
#                               |                   |                                                                                                                                                                                   
#Branch A ______________________|___________________v_____________________                                                                                                                                                                                                                                          
#               |                                   |                                                                                                                                                                                                                       
#               +A                                  ~+Z                                     

在这种情况下,我希望能够在分支B中使用diff,直到tag1

git diff tag1 

问题是我将拥有这个git diff

+A
+Y

我只想要+ Y,因为我希望我的git diff忽略B中A的合并

即使我在分支B中创建了一个临时分支,这个解决方案似乎也行不通,因为我将A中的A和B中的A合并。

如果您已经遇到此问题或者您有好主意解决问题,请告诉我。

1 个答案:

答案 0 :(得分:1)

您可以使用--first-parent的{​​{1}}和--no-merges标记到达那里:

命令:

git-log(1)

输出:

user@machine$ git log --no-merges --first-parent --patch-with-stat tag1..HEAD