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 fetch
3.切换回master分支,并执行合并
git checkout master
git merge local-git-svn
4.推送到远端的master
git push origin master
5.最后把local-git-svn分支可以删除了
git branch -d local-git-svn
===》前面有点复杂了,可以简化为三步:
git svn fetch
git merge remotes/git-svn
git push origin master