美文网首页SRE磐石Basegitlab
一个本地Git仓库连接多个远程仓库

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

作者: 帅可儿妞 | 来源:发表于2019-01-15 21:06 被阅读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到多个远程仓库中

    相关文章

      网友评论

        本文标题:一个本地Git仓库连接多个远程仓库

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