文档章节

git shallow clone之后切换远程分支的方案

Feng_Yu
 Feng_Yu
发布于 2017/01/02 19:05
字数 403
阅读 847
收藏 0
Git

shallow clone

浅克隆经常在一些大型仓库中很有用——不用花费大量时间去clone一个完整的仓库,仅仅checkout出来某个分支(如master)的最新N次递交:

git clone --depth 1 https://github.com/openwrt/openwrt.git

由于clone的内容非常少,因此速度就大大提升了。查看git log也只有最后一次递交记录而已。

问题来了

shallow clone对于快速clone代码很有用,但是clone出来的代码不会有远程仓库的tags,也不会有远程仓库的其他分支,如果需要切换tag或者切换分支应该怎么办呢?

取回tag

这个很简单

git fetch --tags

重新把远程的tag fetch到本地的origin仓库即可,然后在git tag就会看到tag了,之后再用checkout就可以了。

取回分支

这个就不是那么好办了,因为这个要求shallow clone必须转换为deep clone。如果你不想删掉现在的仓库目录重新clone的话,需要做下面两步:

git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'
git fetch --unshallow

其中,第一步git config是容易被忽视的,shallow clone之后,remote.origin.fetch的值是+refs/heads/master:refs/remotes/origin/master,所以会发现怎么fetch都没有其他分支。

© 著作权归作者所有

共有 人打赏支持
Feng_Yu
粉丝 157
博文 38
码字总数 45571
作品 0
西安
运维
私信 提问
git克隆远程项目并创建本地对应分支

进入到想要放项目的目录,本例中gitdata目录就是我放项目的目录 克隆远程项目 git clone 如: git clone http://XXX.XXX/sq-group/XXX.git 克隆完成之后,可以看见项目名称,进去项目之后,可...

IT阿飞
2017/08/31
0
0
Git常用操作,最常用的都在这了

摘要:Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能。Git有很多优势,其中之一就是远程操作非常简便。 一、git remote: git remote会列出已经设置的每个仓库的简短名称,...

BeautifulSoup's Blog
2017/12/20
0
0
Git分支和远程仓库操作(1)

基本操作: 将远程仓库与本地仓库关联:git remote add origin git@github.com:coderxx/abc.git 增加内容:git add 文件名/文件夹名;增加多个文件时,文件名之间用逗号隔开 提交分支:git c...

makingdifference
2016/06/11
15
0
Git - 生成ssh key步骤以及如何clone所有的远程分支

这里以配置github的ssh key为例: 1. 配置git用户名和邮箱 设置Git的user name和email: $ git config --global user.name "用户名" $ git config --global user.email "邮箱" 在config后加上......

君满楼001
2017/11/30
0
0
Git快速上手

常用命令 1.1 . 命令一览 2 . 常规用法 2.1 . 初始化本地仓库 创建仓库后可以用于管理文件的版本,包含各种文档和代码 2.2 . 将代码提交到仓库 2.3 . 查看当前状态 用以查看是否有修改还没有...

土渣渣
2016/11/21
56
0

没有更多内容

加载失败,请刷新页面

加载更多

Httpd 整合 Tomcat 步骤

环境:Tomcat8 + Httpd2.4 工作原理:借助于Tomcat的AJP连接器实现Apache与Tomcat的通信 配置步骤: 1. 配置httpd.conf 新增: Include conf/extra/mod_jk.conf 修改:添加 index.jsp <IfM...

ZeroneLove
昨天
1
0
Docker笔记3——容器命令(未写完,明天整理接着写)

未写完,明天整理接着写 新建并启动容器 docker run docker run [OPTIONS] IMAGE [COMMEND] [ARG...] OPTIONS: --name=[容器新名字] :为容器指定一个名称 -d:后台运行容器,并返回容器ID,...

HappyBKs
昨天
1
0
2018个人年终总结

感谢领导的信任和指导,新的一年获得了很多成长和提高,改掉了很多不好的习惯。 在这一年里,我在领导的帮助下,主要完成了以下功能: 1、完成上海银行版本投资营销相关功能的开发。 2、完成车...

万山红遍
昨天
9
0
保密工作与linux系统的发展

保密工作从性质上可以分成商业方面的保密和国家安全方面的保密。由于自己从事的是IT方面的工作,工作中必然会接触涉及到计算机信息方面的相关文件。加上单位已近通过武器装备科研生产单位二级...

linux-tao
昨天
2
0
Spark共享变量

概述 Spark程序的大部分操作都是RDD操作,通过传入函数给RDD操作函数来计算。这些函数在不同的节点上并发执行,但每个内部的变量有不同的作用域,不能相互访问,所以有时会不太方便,Spark提...

仟昭
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部