2016-08-31 12 views
0

私は、同じ時点でfb_afb_bの両方をチェックアウトしたとします。今、次のステップのセットは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

両方のマージは異なる場合があります(状況によって異なります)。最初のシナリオでは、コミットをorigin/fb_aからマージします。最後に見た状態のgitからです。 2番目のシナリオでは、現在のローカルリビジョンを取得します。最初のマージが

  fb_a 
o---A----M 
\ /
    o---OB----------o----B 
     origin/fb_b  fb_b 

fb_a 
o---A 
\ 
    o---OB----------o----B 
     origin/fb_b  fb_b 

なります:

以下は、あなたが現在のローカルレポで、リモートレポではありませんfb_b上の2つのコミットを、していると言います2番目のマージは

      fb_a 
o---A--------------------M 
\     /
    o---OB----------o----B 
     origin/fb_b  fb_b 
となります。
関連する問題