如何在GIT和SVN之间进行双向同步
如何在GIT存储库和SVN存储库之间进行双向同步?我已经看到了如何从SVN转换到GIT,但没有太多关于如何在两者之间平滑同步的内容 目的是将项目保存在两种类型的存储库中,并让它们生成/跟踪相同的内容如何在GIT和SVN之间进行双向同步,git,svn,git-svn,Git,Svn,Git Svn,如何在GIT存储库和SVN存储库之间进行双向同步?我已经看到了如何从SVN转换到GIT,但没有太多关于如何在两者之间平滑同步的内容 目的是将项目保存在两种类型的存储库中,并让它们生成/跟踪相同的内容 作为额外要求,作为主题的SVN存储库不包含主干和分支 您需要一个专用的第三方工具,以确保SNV和Git存储库之间真正的双向同步 我只知道能可靠地做到这一点。但它不是免费的。只有从SVN到Git的一次性迁移是可行的。这篇文章看起来是一个解决方案: 在github服务器或bitbucket服务器上创建
作为额外要求,作为主题的SVN存储库不包含主干和分支 您需要一个专用的第三方工具,以确保SNV和Git存储库之间真正的双向同步 我只知道能可靠地做到这一点。但它不是免费的。只有从SVN到Git的一次性迁移是可行的。这篇文章看起来是一个解决方案:
- 在github服务器或bitbucket服务器上创建git repo。克隆空的回购协议。添加一个自述git文件并在主机上提交
- 最初创建svn跟踪分支:
- 从svn同步到git:
- 从git同步到svn:
上述序列的一个缺点是添加了一个伪造的自述git文件,以便可以提取非跟踪分支。我想,从最初从svn回购中克隆的git回购开始,可以避免这个问题 是的,它可以用于简单的回购/分支机构,但有太多的角落案例,SubGit就是为了解决这些问题而编写的。 git branch --no-track svnsync git checkout svnsync git svn init http://your-svn-server/your-repo # here removed `-s` if the svn repo is not on a standard layout # or use file:///path/to/local/repo git svn fetch # add if needed `--authors-file svn-authors.txt` git reset --hard remotes/git-svn # the post said `remotes/trunk` but it does not look right git checkout svnsync git svn rebase git checkout master git merge svnsync # add `--allow-unrelated-histories` to the first merge git push origin master git checkout master git pull origin master git checkout svnsync git svn rebase git merge --no-ff master git commit git svn dcommit