一个本地Git仓库连接多个远程仓库
2019-01-15 本文已影响10人
帅可儿妞
之前为了项目的通用性,就做了一个通用性的项目框架,这个框架只存放通用的东西,放在码云,结果公司前几天说要做一套,于是就想把自己的传到公司内部的GitLab中,问题来了,难道每修改一次我要改两个地方吗?于是就大胆想象,要是一个本地Git仓库能连接多个远程Git仓库那该多好,度娘一搜,傻眼了,还真有,而且解决了我一直以来的一个困惑:push -u origin master中origin是什么
- 做法其实很简单,和我的另外一篇关系很密切,就是把已有的本地仓库上传到远程仓库中
- 原理:
- 两条命令
$ remote add origin <remote-git-url> $ push -u origin master
- 其中origin就是Git本地仓库指向对应的<remote-git-url>的一个本地标识,可以自定义,而push命令中的master指的是远程仓库的分支名称;
- 知道这点就可以狂躁了,因为不同的远程仓库,就会有不同的<remote-git-url>,也就是我们可以在本地取一个名字,不同的远程仓库有不同的名称
- 即这个名字可以理解为是<remote-git-url>的一个别名,但是只在本地存储,远程不知道这个别名的存在
- 两条命令
- 操作
- 查看本地的远程
$ 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的本地标识
- 查看本地的远程
- 从此以后一个本地仓库想关联到几个远程就关联几个远程,方法同上
- 注意:本地仓库的代码只有一份,所以在本地执行git add ./等命令的时候只需要执行一次,完成后分别push到多个远程仓库中