我一直在使用git-svn远程处理尖峰以获得新功能。现在我想将我的更改提交到SVN,但是在不同的SVN分支上,而不是我第一次克隆的。我怎么做 ?
原来的分支发生了变化,我还没准备好将两者合并。我想从原始分支创建一个新的SVN分支,并提交我在git中的更改。
我只有一个SVN分支的浅层克隆:
git svn clone -r:HEAD svn://***/branches/main
git branch MySpike
git checkout MySpike
// Did some work, a lot of commits.
如何将我的更改提交回另一个SVN分支?可能吗 ?
答案 0 :(得分:1)
设法配置两个svn分支后(只需修改.git / config文件)。以下是如何将名为 cool / feature 的分支中 svn / original / branch 之上的所有代码重新绑定到另一个svn分支 svn / another / branch :
git rebase --onto svn/another/branch $(git merge-base svn/original/branch cool/feature) cool/feature
答案 1 :(得分:1)
扩展the.malkolm的回答:
如果您查看.git/config
,就会找到像fetch = branches/main:refs/remotes/git-svn
这样的行。添加另一个类似的行,引用要提交的远程分支的名称,以及在本地提供它的名称(或者,对于Subversion主干,fetch = trunk:refs/remotes/trunk
)。
然后运行git svn fetch
。那将下载你刚刚添加的分支的历史记录;如果这是你需要的,可以随意限制它的修改。
然后重新绑定到新分支,并从那里提交!
git rebase $(git merge-base remotes/git-svn MySpike) MySpike --onto remotes/newbranch
git svn dcommit