对于已浅克隆的项目

$ 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. ASP.NET Core – Data Protection & Azure Storage + Azure Key Vault

    前言 以前就写过很多篇了 Asp.net core 学习笔记 ( Data protection ) Asp.net core 学习笔记 Secret 和 Data Protect Azure key ...

  2. CSS – Reset CSS / Base CSS

    前言 许多 element tag 都有自带的 style. 比如 h1 默认 font-size 是 2 em anchor 默认颜色是 blue 大部分默认 style 并不会是开发人员期望的效果 ...

  3. 前端项目通过 Nginx 发布至 Linux,并通过 rewrite 配置访问后端接口

    〇.前言 本文通过将 arco 框架的前端项目,部署至 CentOS 7,并访问同服务器的 WebAPI 接口,来简单演示一下,如何将前端项目发布至 Linux 系统. 关于 ASP.NET WebA ...

  4. 暑假集训CSP提高模拟8

    一看见题目列表就吓晕了,还好我是体育生,后面忘了 唉这场比赛没啥好写的,要不就是太难要不就是太简单要不就是拉出去写在专题里了 A. 基础的生成函数练习题 考虑到只有奇偶性相同才能尝试加二,因此先用加一 ...

  5. PyTorch 的 Autograd

    看了一篇博客,感觉写的很棒:PyTorch 的 Autograd

  6. 2023年1月中国数据库排行榜:OceanBase 持续两月登顶,前四甲青云直上开新局

    一元复始,万象更新. 国产数据库在经历过耕获菑畲的一年后,产品.生态.人才队伍建设等都取得了重大的进展.2023年1月 墨天轮中国数据库流行度排行 火热出炉,本月排行榜"属性"列新 ...

  7. 【Azure Cloud Service】使用Key Vault Secret添加.CER证书到Cloud Service Extended Support中

    问题描述 因为Key Vault的证书上传功能中,只支持pfx格式的证书,而中间证书,根证书不能转换为pfx格式,只能是公钥证书格式 cet 或者 crt,能通过文本工具直接查看base64编码内容. ...

  8. 初探AI之got-ocr2.0大模型本地部署与遇到的各种坑处理

    一.环境搭建 1.安装cuda,本人使用的是12.1版本,下载地址:https://developer.nvidia.com/cuda-12-1-1-download-archive 2.安装cond ...

  9. 全局负载均衡、CDN内容分发的原理与实践

    CDN简介 CDN的全称是Content Delivery Network,即内容分发网络.CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡.内容分发. ...

  10. 为你的Windows用户设置无边框半透明头像

    步骤一:锁定头像 Win+R输入gpedit.msc进入组策略编辑器,按图中所示,选择"计算机管理->管理模板->用户账户设定",将里面唯一选项"对所有账户使 ...