git-clone的single-branch操作回退

这篇具有很好参考价值的文章主要介绍了git-clone的single-branch操作回退。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)文章来源地址https://www.toymoban.com/news/detail-811501.html

最近使用git越来越多,一些git的功能使用也更熟悉了一些。
之前使用了single-branch下载分支,后来想取消掉,但怎么做呢,查了一些资料之后,了解到了怎么做,特记录下来。

背景

所在的项目中,一个库的分支非常多,有50上以上的分支,clone工程时,也耗时比较长。下载的时候,考虑着只用一个分支,就指定了分支clone的工程。
操作语句形如:

$ git clone -b mybranch --single-branch --depth 1 https://user@192.168.0.101:8080/scm/git/demoproject local-folder-name

过了一段时间后,发现单用这一个分支不够用了,需要下载一个新的分支,但通过
git branch -a 查看是,会发现本地和远端都只有这一个分支存在。
形如:

$ git branch
*mybranch
remotes/origin/mybranch

如何去除single-branch影响呢?怎么能看到远端的所有分支呢?也只有看到了远端的哪些其余的分支,才能够去把远端的其他分支下载到本地来,才能checkout来switch到另一个分支上去。

去除single-branch影响

如何去除single-branch影响?我们先来看一看single-branch会对配置产生哪些影响呢?
观察发现,在.git/config有体现它的影响。
下面观察一个带single-branch 和 一个不带single-branch是,这个配置文件的变化。

观察配置

不使用single-branch时的,.git/config缺省配置:

[remote "origin"]
        url = http://username@192.168.0.101:8080/scm/git/demoproject
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "mybranch"]
        remote = origin
        merge = refs/heads/mybranch

使用single-branch时的,.git/config配置

[remote "origin"]
        url = http://username@192.168.0.1014:8080/scm/git/demoproject
        fetch = +refs/heads/mybranch:refs/remotes/origin/mybranch
[branch "mybranch"]
        remote = origin
        merge = refs/heads/mybranch

可以观察到差异体现在remote “origin“里面的fetch配置项上。

回退配置

对于回退时,查阅资料发现,也确实是来修改这个配置项的,下面来看修改的方式。

  1. 设定配置[remote “origin“].fetch

$ git config remote.origin.fetch “+refs/heads/:refs/remotes/origin/

  1. 重新获取origin信息,通过fetch获取到所有的分支信息树结构
    注意:这一步如果库比较大,分支比较多,可能耗时会比较长

$ git fetch origin

  1. 观察远端分支,会看到增加了很多

$ git branch -a
*mybranch
remotes/origin/mybranch
remotes/origin/master

去除single-branch后

经过上一步,回退了single-branch。
此时这个本地库就和直接clone的一样了,可以切换到拥有的所有分支了。

当然随之而来,也会看到本地库所占的大小增加了很多。
linux下可以使用 du -sh 来查看目录所占的大小,如果观察的话,会发现增长了很多。
因为去除single-branch的话,我们就和远程库保持一致了,自然大小也会比较大了。

有利有弊,去除single-branch后,大小增加了,但同时我们恢复了切换到所有其它分支的自由。

切换到其他分支方法:

此时如果想要checkout到一个新的分支上,就可以执行下面操作来做了:

$ git checkout master
分支 master 设置为跟踪来自 origin 的远程分支 master
切换到一个新分支 ‘master’

切换后,就可以查看本地分支,可以看到本地多了这个分支,也切换到了这个分支

$ git branch

  • master
    mybranch

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)

到了这里,关于git-clone的single-branch操作回退的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • git回退操作

    1. 在工作区回退: 此时文件没有经过任何提交 2. git add之后回退 3. git commit 之后回退 其中, commit_id 可通过 git log 查看,例如: 4. git push之后回退 和第三点一样回退: 但是重新 git push 时会报错,需要执行: git push -f ,则成功。

    2024年02月12日
    浏览(33)
  • Git回退代码操作大全

    git回退代码的三种方式mixed,soft,hard 基于IDEA操作,也有纯命令操作,操作方式几乎差不多,在这里不做赘述。 一、.mixed的操作(IDEA的默认操作) 1.左下角git指向标,点击看到我们的git操作日志。选择你要回退的版本。 复制Reversion Number*** 2.在git----resposity-----Reset Hard粘贴你的Reversion N

    2024年02月09日
    浏览(43)
  • git操作之git commit以后想要回退方法

    如果你在Git中执行了git commit命令,但是发现提交的代码有误或者需要进行修改,可以使用git reset命令回退到上一个提交状态。具体步骤如下: 1、使用git log命令查看当前分支的提交历史,找到你需要回退的提交。每个提交都有一个唯一的SHA-1哈希值,你可以使用这个哈希值来

    2024年02月07日
    浏览(35)
  • git同步更新、提交代码、回退操作、合并提交

    一、从远程仓同步更新到个人仓(分支) 1、git clone -b xxx分支 xxx个人仓地址(clone个人仓分支到本地) 2、cd xxx/(进入clone项目的根目录) 3、git remote -v(查看origin upstream)       git remote add upstream xxx远程仓地址(添加上游代码库) 4、git fetch upstream(获取原仓库的更新)

    2024年02月07日
    浏览(60)
  • Git 回退(Revert)操作后无法重新合并的问题

    公司使用码云企业版作为代码托管平台,采用master/dev分支分类进行代码管理,matser分支为保护分支,只能审核后在网页端提交合并(请求评审)。 此时dev代码合并到master后发现有问题需要回退上次一合并,此时只能在请求评审处点击回退按钮,回退后master并没有改动,而是

    2024年02月11日
    浏览(42)
  • Git的原理与使用(一):Git的基本操作(包含:版本回退)

    Git是一个版本控制器 在这里我们重点介绍Linux操作系统下的Git的使用 因为在未来的开发过程中Linux操作系统的使用更为频繁 而且Git最初就是在Linux操作系统下面开发的 1.git命令与git help(Git下的\\\"man手册\\\") 首先我们可以使用git命令来查看我们有没有安装Git 如果结果是这样的 说明

    2024年02月05日
    浏览(36)
  • git merge合并分支代码后如何回退合并操作

    这次问题产生的原因还是自己操作过于急躁了,新功能开发完成之后没有实时的与经理沟通就进行了新功能分支合并的操作,导致当前版本部分功能由于没有同步产生了一些问题,因此需要把代码进行回退操作; 但是分支代码修改了许多文件,并且已经推送到了远程仓库,手

    2024年02月08日
    浏览(64)
  • git reset 版本回退或撤销上一次pull操作

    在拉取分支准备合并的时候,发现分支拉错了,不想提交,这时候你应该回退一下你所拉取的分支 比如我现在已经执行完git pull 了,但是想回头git pull之前的内容 upstream 是我远程分支 pro是我远程分支的生产环境 现在我们先看看历史提交记录 git reflog 打印的更为详细一些 这里

    2024年02月11日
    浏览(49)
  • Git的基本操作(安装Git,创建本地仓库,配置Git,添加、修改、回退、撤销修改、删除文件)

    Git 是开放源代码的代码托管⼯具,最早是在Linux下开发的。开始也只能应⽤于Linux平台,后⾯慢慢的被移植到windows下,现在,Git可以在Linux、Unix、Mac和Windows这⼏⼤平台上正常运⾏了。 如果你的的平台是centos,安装git相当简单,以我的centos7.6为例: 我们还可以用下面的指令来

    2024年03月28日
    浏览(64)
  • idea-git操作 :Rollback(回退),Reset HEAD(重置/回滚) --git项目代码丢失

    在Reset HEAD 操作中代码丢失的解决方法: 看Reset Head ! rollback: 回退 - 选择回退add的内容 (1.已commit的:只是删除修改部分;2.已add的:只是回退到未add的状态3.未add的 不变) Reset Head: Reset Type : mixed(混合) ,soft(软) ,hard(硬) TO Commit : HEAD ,HEAD^ (回退到上一commit版本) ,number(回退指定commit版本

    2024年02月10日
    浏览(90)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包