写完这行代码打球去

写完这行代码打球去

绑定方法见知乎大佬:本地Git仓库关联多个远程仓库的两种方法

我才用的是上述文章里的第二种方式:

在原来仓库的基础上执行一下方法:xxx.git为xx云远程仓库的git地址

git remote set-url --add origin new.git

这样 输入 git remote -v即可看到:

origin  old.git (fetch)
origin  old.git (push)
origin  new.git (push)

即: 拉取分支为原仓库分支;push分支添加了一个xxx云仓库的分支;
拉取代码只会从原仓库上拉取、儿提交代码会推送到两个远程仓库,这样实现了两个远程仓库的同步

但是依旧出现了问题:

原因:

git remote set-url --add origin old.git

导致了 git remote -v

origin  new.git (fetch)
origin  new.git (push)
origin  old.git (push)

我的拉取跟其他同事拉取的仓库不一致,当同时提交时,或者提交忘记拉取时,导致两个仓库的提交记录不一致

此时:我和其他同事pull 后push时会有refs不同等等的弹窗

一番折腾最终也是解决了这个问题:

  1. 切换到原fetch old仓库,删除远程,绑定远程仓库为new仓库,
  2. git pull 绑定远程 git branch set_upstream-to=origin/develop develop (若多个分支出现提交ref错乱需要挨个处理)
  3. 修改冲突(如果有),git push到new.git上(old分支的提交)
  4. 删除远程,绑定远程为old。提交推送(new的提交)
  5. 此时,两个仓库的提交已同步
09-13 01:29