git原理:引用规格
引用规格(refspec):就是在 .git/config 里面那个配置远程仓库的东西
[remote "origin"]
url = https://github.com/test/demo
fetch = +refs/heads/*:refs/remotes/origin/*
格式:由一个可选的 + 号和<src>:<dst>组成
+:即使在不能快进的情况下也强制更新引用
<src>:代表远程版本库中的引用
<dst>:远程引用在本地所对应的位置
引用规格由git remote add命令自动生成,git获取服务器中refs/heads/下面的所有引用,并将他们写入本地的refs/remotes/origin中,所以,如果服务器上有一个master分支,在本地这三种写法是等价的:
git log origin/master
git log remotes/origin/master
git log refs/remotes/origin/master
他们都会被扩展成 refs/remotes/origin/master
每次只拉取master分支,而不是所有分支,修改文件为:
fetch = +refs/heads/master:refs/remotes/origin/master
将远程master分支拉取到本地的origin/mymaster分支:
git fetch origin msater:refs/remotes/origin/mymaster
在配置文件中指定多个用于获取操作的引用规格,比如:
[remote "origin"]
url = https://github.com/test/demo
fetch = +refs/heads/master:refs/remotes/origin/master
fetch = +refs/heads/experiment:refs/remotes/origin/experiment
这样,每次拉取的时候都会拉取到master和experiment两个分支
模式不支持部分通配符,所以像下面这样的引用规格是不合法的:
fetch = +refs/heads/qa*:refs/remotes/origin/qa*
可以通过子目录的方式来达到类似目的:
假设QA 团队推送了一系列分支,只想拉取master和QA的分支,其他的不关心:
[remote "origin"]
url = https://github.com/test/demo
fetch = +refs/heads/master:refs/remotes/origin/master
fetch = +refs/heads/qa/*:refs/remotes/origin/qa/*
推送:
命令行:git push origin master:refs/heads/qa/master
配置文件:push = refs/heads/master:refs/heads/qa/master
删除:
$ git push origin :topic
因为引用规格的格式是 <src>:<dst>,所以把 <src> 留空,意味着把远程版本库的 topic 分支定义为空值,也就是删除它。
git原理:引用规格的更多相关文章
- Git 内部原理 - (5)引用规格 (6) 传输协议
引用规格 纵观全书,我们已经使用过一些诸如远程分支到本地引用的简单映射方式,但这种映射可以更复杂. 假设你添加了这样一个远程版本库: $ git remote add origin https://g ...
- Git提交引用和引用日志
转载自:https://github.com/geeeeeeeeek/git-recipes/wiki/5.5-Git%E6%8F%90%E4%BA%A4%E5%BC%95%E7%94%A8%E5%9 ...
- Git原理与命令大全
Git (wiki: en chs )是一个免费开源的分布式版本控制系统,由linux内核作者linus Torvalds开发,大型开源项目linux kernel.Android.chromium ...
- git原理学习记录:从基本指令到背后原理,实现一个简单的git
一开始我还担心 git 的原理会不会很难懂,但在阅读了官方文档后我发现其实并不难懂,似乎可以动手实现一个简单的 git,于是就有了下面这篇学习记录. 本文的叙述思路参照了官方文档Book的原理介绍部分 ...
- Git原理及常用操作命令总结
git原理介绍及操作 git 原理——
- Git原理入门简析
为了获得更好的阅读体验,建议访问原地址:传送门 前言: 之前听过公司大佬分享过 Git 原理之后就想来自己总结一下,最近一忙起来就拖得久了,本来想塞更多的干货,但是不喜欢拖太久,所以先出一版足够入门的 ...
- Git原理入门解析
前言: 之前听过公司大佬分享过 Git 原理之后就想来自己总结一下,最近一忙起来就拖得久了,本来想塞更多的干货,但是不喜欢拖太久,所以先出一版足够入门的: 一.Git 简介 Git 是当前流行的分布式 ...
- git原理及如何选择分支模式
一.git 原理介绍 1.git的四个工作区域 Git有四个工作区域:工作目录(Working Directory).暂存区(Stage/Index).资源库(Repository或Git Direc ...
- Git原理学习记录
Git原理学习记录 1.git init git-test git init 实际上就是在特定的目录下创建对应的目录和文件 2.object $ echo "V1" > ...
随机推荐
- Atitit.数据库表的物理存储结构原理与架构设计与实践
Atitit.数据库表的物理存储结构原理与架构设计与实践 1. Oracle和DB2数据库的存储模型如图: 1 1.1. 2. 表数据在块中的存储以及RowId信息3 2. 数据表的物理存储结构 自然 ...
- UVA 11885 - Number of Battlefields(斐波那契)
11885 - Number of Battlefields 题意:给周长.求能围成的战场数目.不包含矩形. 思路:详细的递推没递推出来,可是看了网上一个规律,假设包含矩形的答案应该是斐波那契数列(可 ...
- stylelint — css书写规范
sass lint guidance 一.安装:npm intsall -g stylelint 二.配置:http://stylelint.io/user-guide/rules/ (以下规则文件配 ...
- http加密原理
HTTPS原理 客户端向服务器发送请求 服务器向客户端发送自己的证书 客户端验证证书的有效性(是否是可信用机构CA颁发的证书,如果不是则提出警告)并对比里面信息是否正确,不通过则立刻断开连接 向服务器 ...
- codeforces #364b Cells Not Under Attack
比赛的时候 long long sum=n*n,计算不出1e10长度到数,没有搞掉. 哎,以后要注意这个地方.这个题其实不难: 统计能被攻击到的个数,然后用总的个数减掉就可以了.注意有些地方重复计算, ...
- ex:0602-169 遇到不完整或无效的多字节字符,转换失败
错误原因:在AIX系统中,用vi命令编辑文件,出现rt错误,是因为AIX系统不识别文件编码格式. 解决方法:建议重新新建一个编码格式为ASC的文件,再重新上传到AIX系统中,或者改变访问linux的客 ...
- iOS 学习笔记七 【博爱手把手教你使用2016年gitHub Mac客户端】
iOS 学习笔记七 [博爱手把手教你使用gitHub客户端] 第一步:首先下载git客户端 链接:https://desktop.github.com 第二步:fork 大神的代码[这里以我的代码为例 ...
- Scrapy爬虫入门系列3 将抓取到的数据存入数据库与验证数据有效性
抓取到的item 会被发送到Item Pipeline进行处理 Item Pipeline常用于 cleansing HTML data validating scraped data (checki ...
- 巧用批处理cmd快速切换IP地址
如果你的笔记本经常在不同的地方使用,有些地方需要自动获取IP,而有些地方需要配置固定IP,每换一个地方都需要重新配置一遍,是不是感觉很麻烦呢? 下面介绍一种通过建立批处理文件来快速切换IP的方法: s ...
- ImageData
http://www.html5china.com/HTML5features/canvas/20120501_3591.html 1.上下文对象 Context 有三个方法用来创建.读取和设置 Im ...