2017-10-05 255 views
0

我正在審閱git rebase和git merge的文檔。我幾乎明白了差異和重新定義,但我有一個疑問。重新分配對當前分支或重新設置的分支有影響嗎?重新分支chnage當前分支或我們重新分支的分支

例如:

我有一個分支new-branchmaster簽出,既masternew-checkout分支機構的進展,現在new-branch推動一些提交之後,我想與原籍主變基它。

my-branch

git rebase master 

運行此命令我做了墊底,我知道,git會放my-branch一些新提交當前master分支的頭頂。

現在我的問題是,如果我會強制從my-branch推,那麼它會改變代碼my-branch或它將改變遠程master分支。

希望你明白我的問題,請讓我知道是否有任何混淆在我的問題。任何幫助,將不勝感激。

+0

git rebase master,會把主分支上的提交放在'my-branch'之上而不是你正在說的... –

+0

你在哪個分支上推? –

+0

我想在與主人重新綁定後推「my-branch」 – Vikash

回答

1

git rebase master將更改提交歷史new-branch

如下圖,假設原來提交歷史是:

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

執行git rebase master後,它會重訂的變化從my-branchmaster分支。而提交歷史看起來像:

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

如果強行推my-branch遠程(git push -f origin my-branch),遠程my-branch將改變版本F'如上圖。

+0

主分支什麼時候變成'F'?如果我檢查出主人並做混帳推主,那麼它會改變像'F'? – Vikash

+0

'master'分支沒有改變,它仍然指向提交'H'。如果你再次推'master'分支,它會顯示'所有東西都是最新的'。 –