git svn并重新定位分支rebases master

时间:2012-10-24 19:55:27

标签: git svn branch rebase

我的本​​地计算机上有一个git-svn存储库。

我的工作流程如下:

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

当我检查出主人时,我很惊讶地看到已经应用了rebase的结果(虽然减去了我的更改)。

这是预期的行为吗?我原本以为它会将最新的SVN从我的分支机构中拉出来,而不是主机。这几乎就好像它首先在主人身上做了'svn rebase',然后用主人重新分配我的分支。

贾斯汀

1 个答案:

答案 0 :(得分:2)

如此Git-svn tutorial中所述:

  

您可以对此分支提交不会影响master分支的更改,并且可以在本地分支和主分支之间来回切换。
  此外,这些分支中的每一个都连接到SVN存储库的主干,因此从这些分支中提交的任何更改都将自动合并到SVN中继中,并在您下次运行时显示在本地中继中当git svn rebase签出trunkmaster

因此,虽然你的new_branch HEAD在svn更改时确实已经重新定位,但是在重新定位new_branch然后new_branch之后,首先将svn更改应用于主分支(从master开始新提交是在(new_branch)$ git checkout master (master) $ git svn rebase (master) $ git checkout new_branch (new_branch)$ git rebase master 新提交之上完成的。

如果短于:

{{1}}