我目前正致力于将svn源控制项目迁移到Git(BitBucket)。我已经跟随guide by Atlassian并且几乎到了最后但是在运行命令 git push -u origin --all 时遇到以下错误:
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
Everything up-to-date.
我相信这是因为SVN布局不是标准布局。我必须像这样指定主干,分支和标签:
git svn clone --trunk=/main --branches=/branches/Sprints/Iteration_1 --branches=/branches/Sprints/Iteration_2 --tags=/tags --authors-file=authors.txt svn://svn-project/projExample projExample
但我无法弄清楚如何继续并将回购推送到BitBucket。任何帮助将不胜感激!
值得注意的是,我已经尝试了命令 git push origin master 并收到以下错误:
error: src refspec master does not match any.
error: failed to push refs to '[my bitbucket origin]'.
我发现的上一个问题的示例是here。但这似乎没有帮助。也许我做错了什么?
以下是为了达到上述初始错误而运行的命令:
答案 0 :(得分:0)
经过大量的反复试验后,我得出的结论是,这里使用的SVN结构太复杂了。我将命令更新为
git svn clone --trunk=main --branches=branches/*/* --tags=tags/* --authors-file=authors.txt svn://svn-project/projExample projExample
这解决了这个问题但导致命令运行了7天!这表明结构太复杂了!
由于这个原因,我决定使用包含最新代码的svn分支作为成功添加历史但没有创建所需分支的主干。我决定这很好,因为命令会在2小时内运行。我去的命令更像是这样:
git svn clone --trunk=branches/Sprints/Iteration_2 --authors-file=authors.txt svn://svn-project/projExample projExample.
如果我就此建议其他人,我会说要直接接受上面的命令,因为它很快就完成了工作!
以下是将SVN同步到Git仓库所需的命令。基本上你需要合并origin / trunk和master然后按
git svn fetch
git merge origin/trunk
git push origin master