仅拉取git远程仓库中特定的单个分支

结论

拉取git远程仓库中特定的单个分支的关键在于:“调用git clone时候,添加--branch选项与 --single-branch”

git clone

git clone克隆远程仓库时,默认会依次做以下事情:

  • 创建本地的“远程追踪分支”,用于记录远程仓库中每个分支在克隆仓库时的状态。
  • 创建并检出本地的“初始化”分支,该初始化分支复制于远程仓库中的当前分支。
  • 调用不带参数的git fetch,下载数据并更新所有的远程追踪分支。
  • 调用不带参数的git pull,合并下载的数据当本地分支。

branch选项与single-branch选项说明:

  • --branch <name>选项:“新生成的本地仓库的HEAD不指向远程仓库中HEAD指向的分支,而是将新生成的本地仓库的HEAD指向指定的 <name>分支”。HEAD是用于标识仓库的当前所在分支的,对于git clone而言,在创建完远程追踪分支后,需要创建本地的初始化分支,该初始化分支复制于远程仓库的当前分支,因此需要知道远程仓库中的当前分支是谁,这可以通过查看远程仓库中的HEAD确认,也就是说默认情况,git clone会在第二步在本地复制远程仓库当前所在的分支。但是指定--branch <name>后,git clone就是复制指定的远程分支,而非远程仓库当前的分支。注意<name>必须是远程仓库中存在的分支名,否则会分支不存在的错误。

  • --single-branch选项:只克隆一个远程仓库中分支的历史,默认是远程仓库HEAD指向的分支,通过 --branch 选项可以指定克隆其它远程分支。注意该选项是作用在git clone第一步的,即怎样创建远程追踪分支,指定它,就只会生成一个远程追踪分支。另外当远程仓库处于“Detach HEAD”状态时,并且指定了该选项,将不会创建远程追踪分支。

实例

有以下远程仓库,有两个分支,只拉取online分支:
在这里插入图片描述
执行git clone --branch online --single-branch -- <URL> <自定义本地仓库名>
在这里插入图片描述
如果不加--single-branch,执行git clone --branch online <URL> <自定义本地仓库名>:
在这里插入图片描述
发现远程追踪分支除了online,还有其它分支

如果需要再生成本地master分支,则执行git branch master remotes/origin/master

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值