从现有的Git分支创建一个SVN分支

4

我通过git svn clone克隆了一个现有的SVN项目,目前没有任何问题,但与此同时,我在Git中创建了一个分支(而不是在SVN中),现在我想将这个分支同步回SVN分支(而不是主干)。

我已经创建了这个分支一段时间了。能否将存储在该Git分支上的信息取回到SVN中?

1个回答

5
您可以使用git svn branch在Subversion中创建一个新的分支。您可能需要查看此答案中的示例:Git-svn: create & push a new branch/tag? 特别是链接教程中的好提示是使用--dry-run选项来检查svn dcommit命令是否将推送到正确的分支。
Pro Git书籍有更清晰的描述,说明了git svn dcommit如何决定更新哪个svn分支。我认为您应该:
  • Create a new svn branch using git svn branch new-experiment
  • Create a local branch to track remotes/new-experiment with git checkout --track -b new-experiment remotes/new-experiment
  • Rebase the changes from your old git topic branch (let's suppose it's called experiment) onto new-experiment:

     git checkout experiment
     git branch original-experiment
     git rebase new-experiment
     git checkout new-experiment
     git merge experiment
    
  • Try git svn dcommit --dry-run to check that the right subversion branch will be updated
  • If so, do git svn dcommit

我想把我在Git分支上所做的更改提交到一个Subversion分支,而不是提交到主干。如果我想把这些更改合并到主干上,我可以在之前先执行合并操作。 - khmarbaise
从你的问题中并没有很清楚,我会更新我的回答。 - Mark Longair
@khmarbaise:好的,我已经更新了我的答案 - 希望现在更清楚了。我建议使用rebase而不是merge,这样你就不会在你的subversion分支中只得到一个合并提交。 - Mark Longair
我遇到了错误:'remotes/my-branch' 不是一个提交,也不能从中创建分支 'my-branch'。 我不得不执行 git branch -r 命令来查看实际名称。 - nupanick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接