SVN迁移到GIT后续推送

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










猜你喜欢

转载自blog.csdn.net/hgy413/article/details/78827542