git clone指定分支
技术背景
Git是代码版本最常用的管理工具,此前也写过一篇介绍Git的基本使用的博客,而本文介绍一个可能在特定场景下能够用到的功能--直接拉取指定分支的内容。
Git Clone
首先看一下如果我们按照常规的操作去拉取一个Gitee的代码仓,是什么样的效果:
$ git clone https://gitee.com/mindspore/mindscience.git
正克隆到 'mindscience'...
remote: Enumerating objects: 2884, done.
remote: Counting objects: 100% (97/97), done.
remote: Compressing objects: 100% (83/83), done.
remote: Total 2884 (delta 21), reused 46 (delta 9), pack-reused 2787
接收对象中: 100% (2884/2884), 21.49 MiB | 1.59 MiB/s, 完成.
处理 delta 中: 100% (1454/1454), 完成.
$ cd mindscience/
$ git branch
* master
拉取了仓库之后,我们发现默认是把master分支给拉取了下来,此时如果要切换到线上的另一个分支dev-md,就需要在本地用git checkout -b
新建一个分支,然后在git pull
远程的dev-md分支。而且之后要push的时候,还需要用set_upstream对齐等等。这样的操作是比较麻烦的,特别是有时我们就只需要其中某一个特定的分支,那我们就可以按照下面的步骤来进行,在clone时就加上-b branch_name
的操作,就可以指定分支进行拉取:
$ git clone -b dev-md https://gitee.com/mindspore/mindscience.git
正克隆到 'mindscience'...
remote: Enumerating objects: 2884, done.
remote: Counting objects: 100% (97/97), done.
remote: Compressing objects: 100% (83/83), done.
remote: Total 2884 (delta 21), reused 46 (delta 9), pack-reused 2787
接收对象中: 100% (2884/2884), 21.49 MiB | 1.70 MiB/s, 完成.
处理 delta 中: 100% (1454/1454), 完成.
$ cd mindscience/
$ git branch
* dev-md
可以看到,在拉取结束后,分支名也跟上游进行了同步,我们就可以在想要的分支上进行操作了。
总结概要
当我们使用Gitee和Github等通过Git来进行代码版本管理的平台时,有时会面临这样的一个问题:某一个代码仓里面划分了很多个分支,而我只需要其中的某一个特性分支,此时如果直接克隆下来,就会导致一系列的麻烦操作。而我们只需要在clone的指令加上一条配置,就可以直接指定分支进行拉取,方便后续的操作。
版权声明
本文首发链接为:https://www.cnblogs.com/dechinphy/p/git-branch.html
作者ID:DechinPhy
更多原著文章请参考:https://www.cnblogs.com/dechinphy/
打赏专用链接:https://www.cnblogs.com/dechinphy/gallery/image/379634.html
腾讯云专栏同步:https://cloud.tencent.com/developer/column/91958
CSDN同步链接:https://blog.csdn.net/baidu_37157624?spm=1008.2028.3001.5343
51CTO同步链接:https://blog.51cto.com/u_15561675