美文网首页
Git使用(二):本地仓库关联多个远程仓库

Git使用(二):本地仓库关联多个远程仓库

作者: houtengzhi | 来源:发表于2019-01-08 11:09 被阅读0次

有一个项目一直是用Gerrit进行源码管理,最近有个需求要将代码移到GitLab上去,但是又不想放弃Gerrit的代码review功能,这就需要将本地的git仓库与Gerrit和GitLab的远程仓库同时关联。
通常的做法有

1. 使用git remote set-url命令

使用git remote -v查看本地库已经关联的Gerrit远程仓库

$ git remote -v
origin  ssh://yechy@192.168.1.xxx:xxxx/OTT (fetch)
origin  ssh://yechy@192.168.1.xxx:xxxx/OTT (push)

添加GitLab远程仓库,其中origin是已经关联的远程仓库别名,git@gitlab:OTT/GxLive_APK.git是新的远程仓库地址

$ git remote set-url --add origin git@gitlab:OTT/GxLive_APK.git

再次查看

$ git remote -v
origin  ssh://yechy@192.168.1.xxx:xxxx/OTT (fetch)
origin  ssh://yechy@192.168.1.xxx:xxxx/OTT (push)
origin git@gitlab:OTT/GxLive_APK.git (push)

可以看到origin这个远程仓库有两个push地址,后面调用git push origin master就会同时往这两个地址push。需要注意的是这个方法用在不需要review的远程仓库是没问题的,一次push操作就能完成两个仓库的代码上传。但是我们的项目中一个远程仓库是Gerrit,它上传代码的操作是git push origin HEAD:refs/for/dev,与GitLab仓库push操作不一样,此配置方法实现不了。

2. 使用git remote add命令

添加远程仓库,使用gitlab作为新的仓库别名,与之前的origin区别开来。

git remote add gitlab git@gitlab:OTT/GxLive_APK.git

查看配置的远程仓库

$ git remote -v
gitlab  git@gitlab:OTT/GxLive_APK.git (fetch)
gitlab  git@gitlab:OTT/GxLive_APK.git (push)
origin  ssh://yechy@192.168.1.xxx:xxxx/OTT (fetch)
origin  ssh://yechy@192.168.1.xxx:xxxx/OTT (push)

后面需要push代码的时候两个仓库分别push就可以,对于新加的GitLab,调用git push gitlab master,Gerrit还是git push origin HEAD:refs/for/dev

关于git pull

如果当前分支有关联的远程分支,可用git branch -vv查看追踪关系

$ git branch -vv
* dev      27437bf [origin/dev] <Apk> Release v1.3.20.

显示本地的dev分支追踪的是origin仓库的dev分支,直接调用git pull会拉origin仓库dev分支的代码。
执行下面命令可以修改本地dev分支追踪的远程分支,如下

 git branch --set-upstream dev gitlab/dev

现在就将追踪的远程分支改为gitlab仓库的dev分支

$ git branch -vv
* dev      27437bf [gitlab/dev] <Apk> Release v1.3.20.

此时在dev分支上git pull拉的就是gitlab仓库的代码。

相关文章

  • Git 入门到放弃

    简介 git关联远程仓库 本地仓库与远程仓库同步问题 Git 终端命令 git关联远程仓库 基本流程 注册gith...

  • 2018-01-16

    ##Git的使用 ###1、查看本地关联的远程仓库地址 git remote –v ###2、从远程仓库(remo...

  • 将本地git仓库关联至远程git仓库 2019-11-20(未经

    如何将本地git仓库关联至远程git仓库 以本地git仓库关联GitHub仓库为例: 在github上新建仓库(注...

  • Git多个远程仓库不同步时的补救办法

    git本地仓库是可以与多个远程仓库关联的,如果想知道怎么配置,请参考Git如何使用多个托管平台管理代码 。 当gi...

  • git 使用记录

    Git使用 关联本地和远程仓库 git remote add 查看本地版本 git remote -...

  • git总结

    本地文件夹关联远程仓库 在github上新建远程仓库, 在本地文件夹下 git init 添加远程仓库:git ...

  • git配置过程中fatal:拒绝合并无关的历史

    首先将远程仓库和本地仓库关联起来: 然后使用git pull整合远程仓库和本地仓库, 完成,问题解决 原文: ht...

  • 如何快速关联/修改Git远程仓库地址

    如何快速关联/修改Git远程仓库地址? 按照如下步骤即可快速实现关联/修改Git远程仓库地址:删除本地仓库当前关联...

  • 工作中git常用命令

    本地仓库与远程仓库关联;方法一:git clone ***方法二:git initgit remote add o...

  • git 重新关联远程分支

    重新跟踪远程文件 使用场景:本地有原代码,但是没有与远程Git仓库做关联,或关联不正确,需要重新跟踪远程git仓库...

网友评论

      本文标题:Git使用(二):本地仓库关联多个远程仓库

      本文链接:https://www.haomeiwen.com/subject/jnzmrqtx.html