git rebase在哪里进行更改

时间:2014-12-08 09:33:30

标签: git git-rebase

git文档对此并不十分清楚,但互联网上的每个人似乎都知道它。

说,我目前正在使用名为feature/test的功能分支。如果我git rebase master,那么rebase在哪里执行?在功能分支或主分支上? IE浏览器。哪一个正在改变?当前分支的更改方式是否与git merge具有相同的语法?在这种情况下,我是否必须返回master并与我的功能分支合并?

编辑:我想要做的是"合并" (在这种情况下,rebase)master分支到我的功能分支,然后"合并"功能分支回到主人。

1 个答案:

答案 0 :(得分:4)

由于您对feature/test上的master进行了修改,feature/test分支已更改。 E.g。

           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与主git一致,因此只需快进主分支。

git checkout master
git merge feature/test

将导致

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

有关详细信息,请参阅Git-Branching-Basic-Branching-and-Merging