远程仓库的概念
虽然自己用Git也有一段时间了,但其实没有很系统的学习过,一般也只用一些简单的git clone,git pull,git push,git checkout命令,对git还是缺乏完整深入的理解。最近遇到一个问题就是自己clone了别人的代码(超多分支,并且持续更新)做一些修改优化和仿真测试并且上传到了gitlab账户上作为一个项目。同时别人的代码也在不断做进一步的开发。问题就在于我希望能随时关注一下别人对这个项目的贡献,然后自己也能够在自己修改的版本上进一步优化开发,不需要这两个部分能够merge起来,因为项目很大,涉及的内容很多,开发方向也有所差异,直接merge肯定是不行的。所以我需要能够在本地的一个项目下同时追踪我自己的远程仓库(origin),也能够追踪这个项目所属开源组织的远程仓库(比如叫XXname)。研究了一下,发现是可以的,git原生就支持多个远程仓库。步骤如下:
先查看当前已有的远程仓库
git remote -v
1
不出意外会显示两个相同的默认名为origin的远程仓库地址,一个用于fetch,一个用于push。
添加新的需要跟踪的远程仓库
git remote add XXname [url]
1
重新查看远程仓库就会发现多了两条名为XXname的仓库记录。
如果不需要了,删除该仓库的指令如下:
git remote rm XXname
1
本地仓库获取该远程仓库的信息
git fetch XXname
1
注意这一步是必须的,因为你的本地仓库还没有任何这一新的远程仓库的信息,需要一个信息同步的过程。
拉取新的远程仓库中的某一分支到本地并创建为新的分支名
因为这两个仓库本质上是同源的,所以本地可能已经存在一些和新的需要拉取的分支同名的分支,所以新的分支拉取到本地必须重新命名,一般在前面加上仓库名作为标识即可,拉取新分支由两种方法:
git fetch XXname Branchname:XXname_Branchname
1
拉取分支到本地创建为新分支XXname_Branchname
或者
git checkout --track XXname/Branchname -b XXname_Branchname
1
拉取分支并切换到该分支,–track标识新创建的本地分支跟踪该远程分支
综上,这样的操作使得本地可以同时管理同源但可能内容和开发方向有区别的两个不同仓库的同一命名的分支。这种方式非常适合自己有点主意但同时又非常依赖开源组织的贡献的开发者们。
当然以上仅是本菜鸟粗浅的认知,可能有更好的方法,欢迎指出。
---------------------
作者:Elainejaney
来源:CSDN
原文:https://blog.csdn.net/elainejaney/article/details/82992525
版权声明:本文为博主原创文章,转载请附上博文链接!