从更新的远程或未按下的跟踪分支合并是否相同?

时间:2016-08-31 06:06:44

标签: git

假设我在同一时间点从fb_a检出了两个功能分支fb_bmaster。现在,以下几组步骤是否会导致与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

请提供相同的解释。

1 个答案:

答案 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