当前位置:   article > 正文

git:一个本地仓库绑定多个远程的方法以及遇到的问题_git关联多个远程

git关联多个远程

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

一般情况下,没人这么搞!
但是公司迁移git仓库阶段,xx云环境上的gitlab要有操作记录,不然影响整体评分,这就不得一个本地仓库关联了原来的仓库+新的xx云环境的仓库

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

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

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

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

origin  old.git (fetch)
origin  old.git (push)
origin  new.git (push)
  • 1
  • 2
  • 3

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

但是依旧出现了问题:

原因:

某一次的开机重启电脑查杀把我的git一些ref对象删了,无法恢复,我重新拉取了xx云上的仓库代码(因为原仓库访问太慢了);然后按上述继续绑定远程origin,不过这次执行的是:

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

导致了 git remote -v

origin  new.git (fetch)
origin  new.git (push)
origin  old.git (push)
  • 1
  • 2
  • 3

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

此时:我和其他同事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. 此时,两个仓库的提交已同步
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/989397
推荐阅读
相关标签
  

闽ICP备14008679号