[教程]使用 Git 克隆指定分支

这篇具有很好参考价值的文章主要介绍了[教程]使用 Git 克隆指定分支。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Git 是我们开发过程中经常使用到的版本管理工具,在平常情况下我们从远程克隆的时候会将整个库克隆下来,这会包括整个版本库的历史提交记录和远程库里的所有分支。但在一些情况下,比如我们并不需要查看历史提交记录而只是希望能够获取到最新的代码;或者我们只希望克隆某个指定分支时,而不是克隆全部的远程分支,此时我们就可以用到一些选项来减少我们的仓库的体积从而提高生产效率。

指定远程分支克隆的好处;

  1. 减少仓库下载体积,提高代码仓库下载速度
    a. 在没有需要查看历史提交的情况下,使用浅克隆模式只克隆最新一次的提交内容:
    git clone --depth 1 -b master git@www.gitee.com/ghimi/hello.git
    b. 在远程仓库分支比较多的情况下,只克隆远程仓库的指定分支和其上的全部提交记录:
    git clone --single-branch -b master git@www.gitee.com/ghimi/hello.git

通过-b branch_name 选项Git 克隆指定分支

当我们没有通过 -b 选项指定分支时,Git 会默认会在本地创建一个 master/main分支并关联到远程的主干分支上,但如果我们希望创建的本地分支关联的不是主干分支时,我们就可以通过-b 选项来指定我们追踪的远程分支名称如:

# 指定克隆远程分支 `/develop/branch_1## 标题`
> git clone -b /develop/branch_1 git@www.gitee.com/ghimi/hello.git

-b选项搭配 --single-branch 选项只克隆指定分支

通过这种方式克隆远程仓库除了指定的远程分支不是主干分支以外,还是会将远程的所有分支都拉取下来,并不能够起到减小克隆仓库体积的功能。

# 指定克隆远程分支 `/develop/branch_1`
> git clone -b /develop/branch_1 git@www.gitee.com/ghimi/hello.git
> cd hello
# 进入仓库,通过 git branch -r 查看可以看到还是拉取到了全部远程分支
> git branch -r
origin/20200113-function-concurrency-test
origin/20210112_8457548_basic2
origin/HEAD -> origin/master
origin/acl_retrofit
origin/add_api_for_get_organizations

如果想要只克隆指定分支还需要搭配 --single-branch 选项,这样我们就只会拉取到我们指定的分支,而不会拉取到其他远程分支了

# 指定克隆远程分支 `/develop/branch_1`
> git clone -b /develop/branch_1 --single-branch git@www.gitee.com/ghimi/hello
> cd hello
# 进入仓库,通过 git branch -r 当前就只剩下一个分支了
> git branch -r
/origin/develop/branch_1

通过 --depth <depth> 选项指定历史记录的深度

在一些情况下导致仓库体积过大的原因并不是分支太多,而是单个分支下的提交记录过多,我们在一些情况下只想查看分支的最新提交的代码,此时我们可以--depth 1 实现浅克隆,此时我们拉取的代码就是最新一次提交后的代码快照。

# 指定克隆远程分支 `/develop/branch_1`
> git clone -b /develop/branch_1 --depth 1 git@www.gitee.com/ghimi/hello
> cd hello
# 进入仓库,通过 git branch -r 当前只有一个分支了
> git branch -r
/origin/develop/branch_1
# 通过 git log 查看历史提交记录,发现只剩下最后一次的提交记录,而无法看到历史的提交记录
> git log
commit 75bdec69e39ea85fcdc750ef289ece7e76d2b79c (grafted, HEAD -> develop/branch_1, origin/develop/branch_1)
Author: ghimi
Date:   Fri Mar 3 15:01:36 2023 +0800
Merge commit 'fc3fe2a0002fc394696ec131797038707f5f4864' into /develop/branch_2

在指定了 --depth 选项后,就无需再指定 --single-branch 选项了。因为浅克隆模式默认隐含了 --single-branch 选项,如果想要在 --depth 选项的基础上还拉取其他分支的代码,可以通过添加 --no-single-branch 选项,此时会拉取到全部远程分支的对应的最近一次的提交记录。

# 指定克隆远程分支 `/develop/branch_1`
> git clone -b /develop/branch_1 --depth 1 --no-single-branch git@www.gitee.com/ghimi/hello.git
> cd hello
# 进入仓库,通过 git branch -r 可以看到拉取到了全部远程分支
> git branch -r
origin/develop/branch_1
origin/20200113-function-concurrency-test
origin/20210112_8457548_basic2
origin/HEAD -> origin/master
origin/acl_retrofit
origin/add_api_for_get_organizations
# 通过 git log 查看历史提交记录,发现只剩下最后一次的提交记录,而无法看到历史的提交记录
> git log
commit 75bdec69e39ea85fcdc750ef289ece7e76d2b79c (grafted, HEAD -> develop/branch_1, origin/develop/branch_1)
Author: ghimi
Date:   Fri Mar 3 15:01:36 2023 +0800
Merge commit 'fc3fe2a0002fc394696ec131797038707f5f4864' into /develop/branch_2

通过 git fetch --unshallow 恢复全部的历史提交记录

我们在使用 --depth 1 查看到了当前代码后,如果想要追溯代码的历史提交记录时,可以用 git fetch --unshallow 命令重新拉取指定远程分支的全部历史记录。

# 指定克隆远程分支 `/develop/branch_1`
> git clone -b /develop/branch_1 --depth 1 git@www.gitee.com/ghimi/hello
> cd hello
# 进入仓库,通过 git branch -r 当前只有一个分支了
> git branch -r 
/origin/develop/branch_1
# 通过 git log 查看历史提交记录,发现只剩下最后一次的提交记录,而无法看到历史的提交记录
> git log
commit 75bdec69e39ea85fcdc750ef289ece7e76d2b79c (grafted, HEAD -> develop/branch_1, origin/develop/branch_1)
Author: ghimi
Date:   Fri Mar 3 15:01:36 2023 +0800
Merge commit 'fc3fe2a0002fc394696ec131797038707f5f4864' into /develop/branch_2
> git fetch --unshallow
remote: Enumerating objects: 79593, done.
remote: Counting objects: 100% (79593/79593), done.
remote: Total 79593 (delta 2162), reused 77796 (delta 2162), pack-reused 0
Receiving objects: 100% (79593/79593), 23.05 MiB | 3.43 MiB/s, done.
Resolving deltas: 100% (2162/2162), done.
From www.gitee.com:ghimi/hello
 * branch                develop/branch_1 -> FETCH_HEAD
# 此时通过 git log 命令查看时就会发现能够看到全部的历史提交记录了
> git log

使用 git checkout -t origin/develop/branch_1 在本地创建分支并追踪同名的远程分支

使用 Idea 的同学肯定用过,当在 checkout 远程分支后,会在本地为远程创建一个同名的分支,我们可以在本地分支上完成开发然后推送到相关远程分支上去。其实使用的就是 -t 选项

> git checkout -t origin/develop/branch_1
Switched to a new branch 'develop/branch_1'
Branch 'develop/branch_1' set up to track remote branch 'develop/branch_1' from 'origin'.

克隆不拉取标签 --no-tags

打标一般用于线上版本管理,在本地开发中其实没什么用,可以在 git clone 或者 git fetch 的时候设置选项 --no-tags 指定不拉取标签。

参考资料

Git clone 手册文章来源地址https://www.toymoban.com/news/detail-779858.html

到了这里,关于[教程]使用 Git 克隆指定分支的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • git clone 指定分支

    要在Git中只克隆一个特定分支,可以使用以下命令: 其中,“-b”选项指定要克隆的分支名称,“--single-branch”选项告诉Git只克隆指定的分支,而不是整个代码库。请将“repository URL”替换为要克隆的Git存储库的URL。 例如,要只克隆名为“dev”的分支,可以使用以下命令:

    2024年02月12日
    浏览(46)
  • git 给仓库添加新分支并上传代码,git 克隆指定分支

    git clone -b 分支名 仓库地址 例如: 1、初始化仓库 2、创建分支并命名 例如: 3、 将文件提交至暂存区 ①  提交文件 提交文件夹下的所有文件 提交文件夹下的指定文件 ② 填写备注信息 4、与远程仓库建立连接 5、将文件提交至分支仓库 6、提交成功 提交成功后,在你的

    2024年02月13日
    浏览(75)
  • 【git】git clone如何将指定分支下载到指定目录

    在git clone下载分支时,往往本地可能存在相同的工程名,这时可以直接通过如下命令git clone 到指定目录中(可以不先创建目录,自动创建): 使用如下命令: git clone https://code.xxxxx.com.cn/xxx_ce/xxxx.git -b [分支名]dev_ce [目录名]xx_devce git clone 成功:

    2024年02月03日
    浏览(55)
  • git clone指定的分支

    开发过程中,需要下载远程仓库代码进行开发合作,某些情况只需要下载指定分支,而不是把整个分支都克隆。 克隆分支命令如下: git clone -b   branchName  repoURL   修改本地分支名字命令如下: git branch  -m   oldBranchName  newBranchName 当需要将某个分支单独放入一个repo时,那么

    2024年02月16日
    浏览(37)
  • git篇---git clone 获取指定分支的指定commit版本

    快速设置— 如果你知道该怎么操作,直接使用下面的地址 强烈建议所有的git仓库都有一个README, LICENSE, .gitignore文件 Git入门?查看 帮助 , Visual Studio / TortoiseGit / Eclipse / Xcode 下如何连接本站, 如何导入仓库 简易的命令行入门教程: 创建 git 仓库: 已有仓库? 第一步: git clone [git-

    2024年02月11日
    浏览(45)
  • Git只clone指定的分支

    默认的clone会下载远程仓库的所有分支。 有时候为了避免创建多个git仓库,想将一些资源在一个git仓库下统一管理,这时候就会出现:git远程仓库分支很多,但是各个分支没有多大关联,这时候clone到本地时,只想clone指定的分支,这样可以节省本地的空间。 怎么操作呢? 查

    2024年02月11日
    浏览(37)
  • Git管理神器SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决,提交PR)

    俗话说的好工欲善其事必先利其器,Git分布式版本控制系统是我们日常开发中不可或缺的。目前市面上比较流行的Git可视化管理工具有SourceTree、Github Desktop、TortoiseGit,综合网上的一些文章分析和自己的日常开发实践心得个人比较推荐开发者使用SourceTree,因为SourceTree同时支持

    2024年02月03日
    浏览(251)
  • 使用Git克隆(clone)Gitee的代码到本地文件夹

    注意:不论是在项目的哪个文件夹下来拿HTTPs下载链接,都会直接clone整个项目到本地 然后摁下\\\"Enter\\\",代码就会被Git到本地仓库

    2024年02月22日
    浏览(54)
  • git操作--->在远程删除了某个分支,但本地使用git branch -r的时候还是会显示某个分支存在是什么原因

    💕又迷糊了哈哈,以为自己命令执行错了,结果可能是缓存的原因:💕 😂如果你发现使用 git branch -r 命令显示了一个远程没有的分支,这可能是由以下几个原因造成的:😂 缓存的远程分支信息: 当你克隆一个仓库或者与远程仓库交互时,Git 会在本地保存远程分支的缓存信

    2024年02月19日
    浏览(55)
  • 使用Git克隆Github项目

    一、下载 Git 打开Git官网下载地址Git download Git for Windows Setup和Git for Windows Portable(便携版)两个版本都可以,我选择的是基本版本,点击”64-bit Git for Windows Setup”。 下载完成后,进行安装:参考此链接进行安装,写的非常好! 二、 GitHub 官网注册自己账号 gitHub是一个面向开源

    2024年02月12日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包