2012-10-24 32 views
2

我的本地机器上有一个git-svn存储库。git svn和重新启动分支rebase master

我的工作流程如下:

git checkout master 
<made bunch o' changes> 
git add . 
git checkout -b new_branch 
git commit -a 
git svn rebase 
git checkout master 

当我检查出的主,我很惊讶地看到底垫的成果已应用于(减去虽然我的变化)。

这是预期的行为?我原以为它会把SVN的最新版本带入我的分支,而不是主人。这就好像它首先在主人身上做了'svn rebase',然后再与主人重新分配我的分支。

贾斯汀

回答

2

正如提到这个Git-svn tutorial

您可以更改提交到这个分支,不会影响你的master分支,你可以来回切换你的地方分支机构之间的主分支。
此外,每个分支都连接到SVN存储库的主干,因此从这些分支提交的所有更改都会自动合并到SVN干线中,并在您下次运行git svn rebase时出现在您的本地干线中请检出您的trunk

所以,当你的new_branch头确实对SVN变化顶部重订,说SVN的变化已经被应用到主支路的第一,重订master前,然后new_branch(因为new_branch新提交的关于master新的顶部做提交)。

如果短于:

(new_branch)$ git checkout master 
(master) $ git svn rebase 
(master) $ git checkout new_branch 
(new_branch)$ git rebase master