上一节我们讲了git操作最基本的命令:最简单的git图解(最基本命令)_jerry_dyy的博客-CSDN博客
这一节我们来讲一下面对多个远程仓库的场景,应该如何来处理。
为什么要有多个远程仓库?
在企业内部开发团队开发过程中,有代码审核的需求,每个团队成员提交的代码不能直接提交到远程公共代码仓库,而是需要先提交到远程自己的代码仓库,然后再提交合并请求(从自己的代码仓库到公共代码仓库的合并请求),经由代码审核人员(一般是团队leader)审核之后,提交才能进入到远程公共仓库:
这样做的好处是增加了一个代码审核的环节,可以最大程度的降低由于代码提交带来的风险。
各个仓库之间的关系
远程你自己的代码仓库是由远程公共代码仓库fork出来的,所谓fork可以理解为将将此刻公共代码仓库的快照复制一份出来。本地代码仓库是由远程公共代码仓库clone出来:
这样做之后,你本地的代码仓库第一个默认的远程仓库origin就是远程公共代码仓库了,以后各种git pull,git push等操作在默认情况下都是走origin,也就是说,在master分支上进行git pull,实际上就是 git pull origin master:master,就是将远程公共代码仓库里面的master拉取到你本地的master上。
pull操作没问题,从远程公共代码仓库即默认的origin拉取就好了,但是push操作的时候,需要先push到自己的远程代码仓库,怎么办?没错,此时本地代码仓库需要添加一个新的远程仓库了!
执行git remote add myorigin <你自己的远程代码仓库地址>。这里我将我自己的远程代码仓库地址命名为myorigin。可以查看下.git目录下面的config文件,找到多个远程仓库的配置:
好,现在我们本地的代码仓库有两个远程仓库了,origin就是默认的远程仓库,即公共的远程代码仓库,myorigin 是你自己的远程代码仓库。
实际企业生产中的代码流转
那在实际企业生产中,代码是如何在这三个仓库之间流转的呢?看下图:
首先通过git pull操作将远程公共代码仓库里面最新的代码拉取下来。注意不能拉取你自己的远程代码仓库,因为你自己的远程代码仓库只是你自己使用的,别人不会去用,团队其他成员的提交都在远程公共代码仓库里面。
然后将你自己的提交 push到你自己的远程代码仓库里面。你自己的远程代码仓库从公共代码仓库fork出来之后,后面公共仓库的所有更新,你自己的远程代码仓库是感受不到的,它只能通过你本地仓库的push操作来更新!
最后提交一个合并请求,这个合并请求是从你自己的远程代码仓库的分支到公共远程代码仓库的同名分支。
好了,这就是今天的分享。相信通过今天的学习,在企业开发中面对多远程仓库的场景,你就可以轻松应对了。