2017-10-05 10 views
0

私はgit rebaseとgit mergeのドキュメントを調べていました。私はその差異をほとんど理解していましたが、疑問があります。 rebaseは、現在のブランチまたはrebasedブランチに影響しますか?例についてはブランチをリベースすると、現在のブランチまたは再ブランチしたブランチがチャンクされます

私は枝new-branchmasterからチェックアウトしたとの両方masternew-checkout枝が進行、今new-branchにいくつかのコミットを押した後、私は元のマスターとそれをリベースします。

私はリベースをしたmy-branch

git rebase master 

でこのコマンドを実行し、私はgitのは、現在のmaster分岐頭の上にmy-branchのいくつかの新しいコミットを置くことを知っています。

今私の質問は、my-branchからのプッシュを強制すると、my-branchのコードが変更されるか、リモートmasterブランチが変更されます。

あなたは私の質問を理解したいと思っています。私の質問に混乱していることがあれば教えてください。どんな助けもありがとう。

+0

git rebase masterは、あなたが言っていることではなく、 'my-branch'の上にマスターブランチからのコミットを入れます... –

+0

あなたが押しているブランチには??? –

+0

マスターでrebaseした後に 'my-branch'をプッシュしたい – Vikash

答えて

1

git rebase masternew-branchのコミット履歴が変更されます。グラフを以下のように

は、コミット元の履歴があると仮定:

A---B---C---G---H master 
     \ 
      D---E---F my-branch 

git rebase masterを実行した後、それはmy-branchからmasterブランチに変更を再配置します。あなたは、リモートmy-branchは、グラフの上のようにF'としてバージョンを変更し、リモート(git push -f origin my-branch)へmy-branchためのプッシュを強制する場合

A---B---C---G---H---D'---E'---F' my-branch 
       | 
       master 

:そして、コミットの歴史は次のようになります。

+0

マスターブランチはいつF 'に変更されますか?マスターにチェックアウトしてgit push masterを実行すると 'F 'のように変更されますか? – Vikash

+0

'master'ブランチは変更されず、' H'をコミットするように依然として指しています。 'master'ブランチをもう一度押すと、'すべて最新のものが表示されます。 –

関連する問題