2014-12-08 97 views
4

git文檔對此尚不清楚,但互聯網上的每個人似乎都知道這一點。git rebase在哪裏進行更改

說,我目前在一個名爲feature/test的功能分支上。如果我做git rebase master,rebase是在哪裏執行的?在功能分支上還是在主分支上? IE瀏覽器。哪一個正在改變?它是否與當前分支被更改的方式具有相同的語法git merge?在這種情況下,我是否必須返回master並與我的功能分支合併?

編輯:我想要做的就是將master分支「合併」(在本例中爲rebase)分支到我的特徵分支中,然後將特徵分支「合併」回主。

回答

4

由於您在master上重新設置了feature/test,因此feature/test分支已更改。例如。

  master 
      | 
      V 
A----B-----C 
     \ 
     D----E 
      ^
      | 
      feature/test 

git checkout feature/test 
git rebase master 

您的回購後,將這個樣子

  master 
      | 
      V 
A----B-----C----D'----E' 
        ^
         | 
         feature/test 

注意D'!= D,因爲它現在有一個新的父。儘管如此,它也包含相同的變化

編輯:

,我怎麼會採取從功能/測試回到主人的變化?

由於feature/test是符合master git只會快速轉發主分支。

git checkout master 
git merge feature/test 

將導致

     master 
         | 
         V 
A----B-----C----D'----E' 
        ^
         | 
         feature/test 

Git-Branching-Basic-Branching-and-Merging的細節

+0

我該如何將採取從'功能/ test'回到主人的變化?爲了保持項目的歷史,做一個簡單的合併是否安全,還是我必須在那裏進行重新設計? – 2014-12-08 09:43:09

+0

您可以安全地合併到主人身上,因爲您剛剛建立在當前狀態之後,顯然不會有任何衝突。 – kasoban 2014-12-08 09:44:27

+0

很酷。一切正常,就像你說的:) – 2014-12-08 10:37:31