绑定方法见知乎大佬:本地Git仓库关联多个远程仓库的两种方法
一般情况下,没人这么搞!
但是公司迁移git仓库阶段,xx云环境上的gitlab要有操作记录,不然影响整体评分,这就不得一个本地仓库关联了原来的仓库+新的xx云环境的仓库
我才用的是上述文章里的第二种方式:
在原来仓库的基础上执行一下方法: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一些ref对象删了,无法恢复,我重新拉取了xx云上的仓库代码(因为原仓库访问太慢了);然后按上述继续绑定远程origin,不过这次执行的是:
git remote set-url --add origin old.git
导致了 git remote -v
:
origin new.git (fetch)
origin new.git (push)
origin old.git (push)
我的拉取跟其他同事拉取的仓库不一致,当同时提交时,或者提交忘记拉取时,导致两个仓库的提交记录不一致文章来源:https://www.toymoban.com/news/detail-700894.html
此时:我和其他同事pull 后push时会有refs不同等等的弹窗文章来源地址https://www.toymoban.com/news/detail-700894.html
一番折腾最终也是解决了这个问题:
- 切换到原fetch old仓库,删除远程,绑定远程仓库为new仓库,
- git pull 绑定远程 git branch set_upstream-to=origin/develop develop (若多个分支出现提交ref错乱需要挨个处理)
- 修改冲突(如果有),git push到new.git上(old分支的提交)
- 删除远程,绑定远程为old。提交推送(new的提交)
- 此时,两个仓库的提交已同步
到了这里,关于git:一个本地仓库绑定多个远程的方法以及遇到的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!