我从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就能看到共享历史记录。我没有任何提交历史记录,我只想将我的更改带入新版本。谢谢你的任何提示。
答案 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允许您切换分支,因此我可以做到这一点,提取更改并解决文件上的任何冲突。