对于已浅克隆的项目

$ git clone --depth=1 <git-repo-url> repo
$ cd repo

现在浅克隆了一个Git仓库repo。但仓库里查询远程分支只有一个默认分支(这里是 master ),没有其他分支(如 weekly ):

$ git branch -r
origin/HEAD -> origin/master
origin/master

查看git config:

$ git config --get remote.origin.fetch
+refs/heads/master:refs/remotes/origin/master

此时是无法拉取其他分支的。解决步骤如下:

$ git remote set-branches origin *

$ git config --get remote.origin.fetch
+refs/heads/*:refs/remotes/origin/* $ git fetch --depth=1 origin weekly
remote: Enumerating objects: 31, done.
...
* branch weekly -> FETCH_HEAD
* [new branch] weekly -> origin/weekly $ git branch -r
origin/HEAD -> origin/master
origin/master
origin/weekly $ git checkout -b weekly origin/weekly
Switched to a new branch 'weekly'
branch 'weekly' set up to track 'origin/weekly'. $ git branch -vv
master 908e654 [origin/master] xxxx
* weekly 2b54b23 [origin/weekly] xxxx

现在已经成功拉取 weekly 分支了。

对于尚未克隆的项目

当你使用 --depth 标志克隆项目时,Git 会默认使用 --single-branch 标志。但你可以使用 --no-single-branch 标志告诉 Git 从每个分支拉取指定深度的历史记录。

$ git clone --depth=1 --no-single-branch <git-repo-url> repo

验证一下克隆结果:

$ cd repo

$ git branch -r
origin/HEAD -> origin/master
origin/dev
origin/master
origin/weekly $ git config --get remote.origin.fetch
+refs/heads/*:refs/remotes/origin/* $ git checkout -b weekly origin/weekly
Switched to a new branch 'weekly'
branch 'weekly' set up to track 'origin/weekly'.

优雅~

关于浅克隆的考量

Git 的浅克隆能帮我们节省时间和硬盘空间,不过这也得考虑到本地的网速和硬盘容量。如果这两者并不是问题,那浅克隆也并非必须的。

另一个需考虑的因素是,即使我们可以从浅克隆的本地仓库推送代码至远程仓库,但两者的内容并不完全一致,由于本地和远程服务器间的计算,每次提交可能需要花费更多时间。

如果你经常从本地提交代码,那么使用完整克隆是有意义的,同时也便于查看历史记录。

Git 浅克隆后拉取其他分支的更多相关文章

  1. git 从远端拉取指定分支和推送本地某个分支到远端

    如题,可以直接从远端拉取某个分支,也可以直接将本地某个分支推送到远端. 原文链接:https://www.cnblogs.com/hamsterPP/p/6810831.html

  2. git 在本地拉取远程分支的代码(并不做提交操作)

    1. git fetch 获取远程的所有分支 2. 在执行 git checkout -b local-branch-name origin/remote-branch  就可以将远程分支remote ...

  3. Git 学习笔记--拉取远程分支到本地

    1.查看远程分支,和上面的第一步相同2. 从远程获取最新版本到本地 git fetch origin master:temp git fetch origin master:temp 这句命令的意思是 ...

  4. git拉取远程分支

    查看本地所有分支列表: git branch -a 查看远程所有分支列表: git branch -r 拉取远程分支(使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checko ...

  5. 【记录】git 拉取远程分支代码,同步到另一个git上

    最近有需求从某git 上拉取所有分支代码同步到另一git上,现记录操作步骤,以便日后使用: 1:先克隆其中一个分支代码到本地环境 git clone -b test http://账号:密码@XXX. ...

  6. git拉取远程分支并创建本地分支和Git中从远程的分支获取最新的版本到本地

    git拉取远程分支并创建本地分支 一.查看远程分支 使用如下Git命令查看所有远程分支: git branch -r 二.拉取远程分支并创建本地分支 方法一 使用如下命令: git checkout ...

  7. git拉取远程分支到本地

    git拉取远程分支到本地 一.查看远程分支 -- 查看远程分支 git branch -r 二.拉取远程分支并创建本地分支 -- 采用此种方法建立的本地分支会和远程分支建立映射关系. git chec ...

  8. git如何拉取指定分支的代码

    问题背景: 新项目还在开发阶段,没有正式对外发布,所以开发同事合并代码到develop上(或者其他名称分支上),而不是到master分支上 通过git拉取代码的时候,默认拉取的是master分支,如下 ...

  9. git拉取远程分支并创建本地分支

    本地分支推送至远程 git checkout local_branch git push origin local_branch:remote_branch 一.查看远程分支 使用如下Git命令查看所 ...

  10. git 拉取远程分支到本地并建立关联关系

    git拉取远程分支到本地   一.查看远程分支 使用如下git命令查看所有远程分支: git branch -r   二.拉取远程分支并创建本地分支 方法一 使用如下命令: git checkout ...

随机推荐

  1. RxJS 系列 – Join Operators

    前言 前几篇介绍过了 Creation Operators Filtering Operators Join Creation Operators Error Handling Operators T ...

  2. docker安装运行kafka单机版

    这里我们安装一下kafka的单机版,由于kafka是基于zk进行管理的,如果我们没有安装过zk的话,需要进行安装好zk再安装kafka,当然如果已经安装过了, 那就没必要安装了.我们可以执行docke ...

  3. opencascade源码学习之HLRAlgo包 -HLRAlgo

    类 HLRAlgo 前言 在给定的投影中,为了达到工业设计.图纸需要的精度,可以删除隐藏的线条.为此,隐藏 线路移除组件提供两个算法: HLRBRep_Algo和HLRBRep_PolyAlgo. 这 ...

  4. MySQL 用户、权限管理,C/C++连接与使用

    目录 用户 用户管理 查询所有用户 查看当前用户 查看当前连接数 创建用户 删除用户 修改密码规则 查看规则/策略 规则说明 临时设置 持久设置 修改密码 权限 数据库提供的 权限列表 查看权限 给用 ...

  5. Linux下执行文件删除的操作{确认!确认! 确认!再三确认!}

    ubuntu 删除文件夹命令 rm -r 文件名字 ---> 强制删除XXX文件 rm -f 文件名字 ---> 强制删除XXX文件(centos) 注: linux 中, 强制删除文件的 ...

  6. opengl在编译的过程中,glad使用

    我在编译的过程中,遇到:无法找到 -lglad这个错误.最后才发现对于glad的使用不能用-lglad.因为我们通过glad的在线服务可以得到一些文件,其中glad.c文件我们是需要放在我们的项目下面 ...

  7. 分类问题的评价指标AUC

  8. 24. echarts 可以画哪些图表

    1. 折线图 2. 柱状图 3. 饼图 4. 地图 5. 雷达图 延申问题:画折线图和柱状图哪些配置可以改变样式 1.  color  设置每个数据的颜色 2. grid 网格设置图表的大小 3. s ...

  9. KubeSphere 部署向量数据库 Milvus 实战指南

    作者:运维有术星主 Milvus 是一个为通用人工智能(GenAI)应用而构建的开源向量数据库.它以卓越的性能和灵活性,提供了一个强大的平台,用于存储.搜索和管理大规模的向量数据.Milvus 能够执 ...

  10. KubeSphere 开源 KubeEye:Kubernetes 集群自动巡检工具

    为什么开源 KubeEye Kubernetes 作为容器编排的事实标准,虽然架构优雅功能也非常强大,但是 Kubernetes 在日常运行过程中总会有一些疑难杂症和隐性的问题让集群管理员和 Yaml ...