我的本地计算机上有一个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',然后用主人重新分配我的分支。
贾斯汀
答案 0 :(得分:2)
如此Git-svn tutorial中所述:
您可以对此分支提交不会影响
master
分支的更改,并且可以在本地分支和主分支之间来回切换。
此外,这些分支中的每一个都连接到SVN存储库的主干,因此从这些分支中提交的任何更改都将自动合并到SVN中继中,并在您下次运行时显示在本地中继中当git svn rebase
签出trunk
时master
。
因此,虽然你的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}}