git-svn如何将更改从本地git repo合并到另一个远程svn分支?

时间:2015-08-11 16:06:48

标签: git svn merge

我从svn分支创建了一个本地git存储库,以便在所有工作准备就绪时使用git的功能并进行dcommit。我有一个非常大的变化,它被推迟了。我在svn上工作的分支已合并到主干并被删除。创建了一个新的发布分支。如果我在svn,我会切换到新分支拉。相反,我克隆了新分支,我想将我的更改合并到其中,然后提交它们。但是,git显然无法看到他们的共享历史记录,而且我的所有更改看起来都像是冲突:

$ git svn clone --revision HEAD  https://svnedge.yadayada.com/svn/ASSIST/branches/FY15Q4X_AugMaint FY15Q4X_AugMaint
...edit,build,test....
$ git svn clone --revision HEAD  https://svnedge.yadayada.com/svn/ASSIST/branches/FY16Q1X_OctMaint FY16Q1X_OctMaint
$ git branch maint
$ git remote add hankr ../FY15Q4X_AugMaint
$ git checkout -t hankr/maint
$ git merge maint
... almost every file a conflict...

有人建议,如果我拉入整个存储库,git就能看到共享历史记录。我没有任何提交历史记录,我只想将我的更改带入新版本。谢谢你的任何提示。

1 个答案:

答案 0 :(得分:0)

我正朝着错误的方向合并。添加远程“hank”和我之前的作品“../FY15Q4X_AugMaint”作为遥控器是正确的。您可以从中断的地方继续,也就是说,您可以通过将它们重新定位到新的SVN分支上来重放您在本地git-svn仓库中保留的SVN的更改。

$ git remote add or ../ASSIST
$ git checkout -t hankr/maint

您的配置应如下所示:

# .git/config (were these created from command line or added?
[remote "hankr"]
    url = ../ASSIST
    fetch = +refs/heads/*:refs/remotes/hankr/*
[branch "maint"]
    remote = hankr
    merge = refs/heads/maint

现在你应该能够改变:

$ git rebase -i master
$ git merge maint

当然,SVN允许您切换分支,因此我可以做到这一点,提取更改并解决文件上的任何冲突。