2014-12-08 100 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