假设我在同一时间点从fb_a
检出了两个功能分支fb_b
和master
。现在,以下几组步骤是否会导致与origin/fb_b
相同的最终状态?
第1步:
1) git checkout fb_a
2) git commit -m "change" # commit some change
3) git push # push the changes
4) git checkout fb_b
5) git merge origin fb_a # merge from remote branch
6) git push
第2步:
1) git checkout fb_a
2) git commit -m "change" # commit the **same change**
3) git checkout fb_b # fetch the commit in fb_b
4) git merge fb_a # merge from tracking branch
5) git push
请提供相同的解释。
答案 0 :(得分:1)
两种合并都可以不同(取决于具体情况)。在第一个场景中,你合并来自origin / fb_a的提交,从上一次看到它指向的那个状态git。在第二种情况下,您将获取当前的本地修订版。
说下面是你当前的本地仓库,你在fb_b上有两个提交,它们不在远程仓库:
fb_a
o---A
\
o---OB----------o----B
origin/fb_b fb_b
第一次合并将导致
fb_a
o---A----M
\ /
o---OB----------o----B
origin/fb_b fb_b
第二次合并将导致
fb_a
o---A--------------------M
\ /
o---OB----------o----B
origin/fb_b fb_b