这可能是一个重复的问题,但我找不到确切的答案。
假设我有两个分支br1和br2,每个分别有3个提交。
BR1
BR2
当我从br2合并到br1时,git登录br1 show提交a,b,c,d,e,f。
假设我有两个分支br1和br2,每个分别有3个提交。
与br2合并后br1
有没有办法过滤仅在br1上创建的提交? (我已经尝试过git log br1..br2但是还有其他方法吗?)
如果合并是Fast-forward或Automerge,GIT会记录合并的任何提交吗? (我发现在发生冲突时提交但不在automerge中提交)
答案 0 :(得分:1)
分支只是指向特定提交的指针。所以你无法从某个分支中找出某个提交来自。
当进行快进时,唯一改变的是切换某个分支指向的提交,因此不会记录额外的提交。如果您确实需要记录额外的提交,请使用git merge --no-ff
。
答案 1 :(得分:0)
我不确定为什么知道这一点很重要,但如果是,那么你可以从br1创建一个新的分支并使用该分支来合并br2。然后br1和br2保持不变,你可以知道哪一个包含哪些更改,同时你还有一个包含两组更改的合并分支。
<强> BR1 强>
<强> BR2 强>
<强> mbr1_2 强>
答案 2 :(得分:0)
git log br1..br2
的问题在于它会尝试抑制作为br1一部分的提交的提交,但是所有提交现在都是br1的一部分,因此不会显示任何内容。
你可以做的是在br2合并之前找到提交; git log br1^..br2
,但这只有在br1没有前进的情况下才有效。
一般来说,最好的方法是找出相关的合并,并显示合并的提交:
git log merge^1..merge^2