SVN迁到GIT
git svn init xxx
git svn fetch
或者
git svn clone xxx
关联到远程服务器,如果已存在,以下二选1
git remote rm origin //删除origin git remote add origin xxx.git //重新添加origin
git remote 查看所有的远端 git remote set-url origin xxx.git推送到远端
git push -u origin master // 第一次推送时 git push origin master // 第一次推送后,直接使用该命令即可推送修改迁完后,考虑到某些时间 svn会继续更新,这时怎么同步呢?
先打开.git/config文件,可以看到:
[svn-remote "svn"] url = https://xxxx fetch = :refs/remotes/git-svn
如果没有,可以自己按上面的添加一下,同样是有效的
也就是remotes/git-svn对应的就是git clone迁移时候的svn仓库
$ git show-ref ec1aab5d3a45537898a5851c843d90036aadd62e refs/heads/master 58e66ad715e9f104d2455e5aeeb9b6dd415973f9 refs/remotes/git-svn 8b6bf396ba7567dc777f30bc7769ce804f96aa4f refs/remotes/master ec1aab5d3a45537898a5851c843d90036aadd62e refs/remotes/origin/master
1.取远程分支并分化一个新分支local-git-svn 然后同步svn的提交记录,
$ git checkout -b local-git-svn remotes/git-svn Switched to a new branch 'local-git-svn'2.然后同步svn最新提交记录
git svn fetch3.切换回master分支,并执行合并
git checkout master git merge local-git-svn4.推送到远端的master
git push origin master5.最后把local-git-svn分支可以删除了
git branch -d local-git-svn
===》前面有点复杂了,可以简化为三步:
git svn fetch
git merge remotes/git-svn
git push origin master