SRE磐石Basegitlab

一个本地Git仓库连接多个远程仓库

2019-01-15  本文已影响10人  帅可儿妞

之前为了项目的通用性,就做了一个通用性的项目框架,这个框架只存放通用的东西,放在码云,结果公司前几天说要做一套,于是就想把自己的传到公司内部的GitLab中,问题来了,难道每修改一次我要改两个地方吗?于是就大胆想象,要是一个本地Git仓库能连接多个远程Git仓库那该多好,度娘一搜,傻眼了,还真有,而且解决了我一直以来的一个困惑:push -u origin master中origin是什么

  1. 做法其实很简单,和我的另外一篇关系很密切,就是把已有的本地仓库上传到远程仓库中
  2. 原理:
    • 两条命令
      $ remote add origin <remote-git-url>
      $ push -u origin master
      
    • 其中origin就是Git本地仓库指向对应的<remote-git-url>的一个本地标识,可以自定义,而push命令中的master指的是远程仓库的分支名称;
    • 知道这点就可以狂躁了,因为不同的远程仓库,就会有不同的<remote-git-url>,也就是我们可以在本地取一个名字,不同的远程仓库有不同的名称
    • 即这个名字可以理解为是<remote-git-url>的一个别名,但是只在本地存储,远程不知道这个别名的存在
  3. 操作
    • 查看本地的远程
      $ git remote -v
      origin  git@gitee.com:askAmazing/temp.git (fetch)
      origin  git@gitee.com:askAmazing/temp.git (push)
      
    • 在本第仓库添加另一个远程仓库:gitlab
      $ git remote add gitlab git@192.168.15.229:username/temp.git
      
    • 查看本地的远程
      $ git remote -v
      gitlab  git@192.168.15.229:username/temp.git (fetch)
      gitlab  git@192.168.15.229:username/temp.git (push)
      origin  git@gitee.com:askAmazing/health.git (fetch)
      origin  git@gitee.com:askAmazing/health.git (push)
      
    • 提交本地仓库到GitLab
      $ git push -f gitlab master
      
      • -f:参数f首次建议加上,以后可以不添加,因为有的人在远程创建项目的时候会随着创建文件,没有f参数就不会覆盖远程已有的,导致push失败
      • gitlab就是在上面自定义的指向git@192.168.15.229:username/temp.git的本地标识
  4. 从此以后一个本地仓库想关联到几个远程就关联几个远程,方法同上
  5. 注意:本地仓库的代码只有一份,所以在本地执行git add ./等命令的时候只需要执行一次,完成后分别push到多个远程仓库中
上一篇下一篇

猜你喜欢

热点阅读