git知识总结-1.git基础之git reference
1.前言
Git版本管理的内容,是一系列由40bytes SHA-1字符串所代表patch,而Git References,则是对这些字符串的引用(也可以理解为别名)。为什么需要别名呢?因为这些字符串太难记了!根据使用场景的不同,Git References分为四类:
2.git references
2.1 指向最后一次提交的reference(分支名)
这类reference以“refs/heads/”为前缀,例如“refs/heads/master”,实际就是git分支,git分支指向某一个commit。正因为此,各种分支名的全称应该是(省略refs字段):
heads/master
heads/bX
heads/bY
不过由于Git默认分支类reference的前缀是“refs/heads/”,因此平时操作分支的时候,可以把“heads”省去。
2.2 指向当前分支的reference(HEAD 标记)
这个reference比较特别,它没有指向某一个SHA-1字符串,而是指向当前正在工作的分支名,如指向refs/heads/master
因此,HEAD标记就是当前分支的标记,具体可以参考2.1小节的介绍。
2.3 指向某一个tag的reference
这类reference以“refs/tags/”为前缀,指向git仓库某一个tag。
有关git tag的知识,后面用到的时候再介绍。
2.4 指向远端仓库最后一次提交的reference(远端分支)
这类reference以“refs/remotes/”为前缀,指向远端仓库某个SHA-1字符串的标记(也即远端分支),其格式为:
refs/remotes/远端仓库名(如origin)/远端分支reference名(如master)
因此,平时我们操作远端分支的时候,所操作的分支名为(以远端master分支为例):
remotes/origin/master
其实就是省略掉refs字段的reference名称。
总结:知道了这4类reference的含义,以及命名方式之后,我们对各类git名称,会有更深刻的理解。
补充:一些Git保留使用的特殊refs:
- HEAD,指向当前本地分支的当前commit状态
- FETCH_HEAD,指向当前本地分支在最近一次fetch操作时得到的commit状态
- ORIG_HEAD,指向任何merge或rebase之前的刚刚检出时的commit状态
git知识总结-1.git基础之git reference的更多相关文章
- 想要学好Git,应该掌握哪些基础知识?
说到Git,作为程序员的你,在项目开发中一定会使用到或将来也一定会使用到的,但是我相信,很多在使用Git的人,都只是停留一些简单的操作上,比如提交(commit).拉取(pull).推送(push). ...
- git知识总结-1.git基础之数据存储
1.前言 git包含四种对象文件: blob tree commit tag(目前没用到,暂时忽略) 2. git对象的关系 图 git三种对象关系 粗略一看,可以大致感觉出blob类似于文件 ...
- git下的团队合作模型及git基础知识汇集
https://www.atlassian.com/git/tutorials/syncing/git-fetch Syncing svn使用单个中央库来作为开发者之间沟通的桥梁,而协同合作是通过在开 ...
- git学习(一)----基础知识
git是世界上最好用最先进的版本管理系统,那么什么是版本管理系统呢,百度上是这样说的: 举个例子,当你写毕业论文的时候,灵感爆发了修改或者删除了一些内容,但是你还想保留之前的版本,就需要另存为不同的w ...
- Git知识总览(二) git常用命令概览
上篇博客我们从 git clone 和 git status 两个命令开始,引出了一系列的git操作命令, 请参见:<Git知识总览(一) 从 git clone 和 git status 谈起 ...
- Git知识总览(三) 分支的创建、删除、切换、合并以及冲突解决
前两篇博客集中的聊了git的一些常用命令,具体请参见<Git知识总览(一) 从 git clone 和 git status 谈起>.<Git知识总览(二) git常用命令概览> ...
- Git知识总览(四) git分支管理之rebase 以及 cherry-pick相关操作
上篇博客聊了<Git知识总览(三) 分支的创建.删除.切换.合并以及冲突解决>,本篇博客我们主要来看一下 rebase 变基相关的操作.rebase 操作和 merge 操作最终都可以达到 ...
- Git 沙盒模拟实战(基础篇)
Git 沙盒模拟实战 分支 现有一个主分支 创建分支 # 创建分支 $ git branch bugFix # 切换到指定分支 $ git checkout bugFix 或者 # 创建分支,并切换到 ...
- git的简单理解及基础操作命令
前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...
随机推荐
- maven导入外部jar包的方法
maven的导入外部jar包的方法(前提还有外部jar包) 1.问题: 在maven添加依赖包时,添加不成功,可以选择通过外部命令导入到仓库里. 2.命令:(在Dos命令行) mvn install: ...
- 微信内无法自动跳转外部浏览器打开H5分享链接的解决办法
很多情况下我们用微信分享转发H5链接的时候,都无法在微信内打开,即使开始能打开,过一段时间就会被拦截,拦截后再打开微信会提示 “已停止访问该网址” ,那么导致这个情况的因素有哪些呢,主要有以下四点 1 ...
- LVS调度算法
LVS-四层调度 1.轮询算法:Round Robin - RR 后端RS性能一致,请求开销差别小 2.加权轮询:Weighted Round Robin - WRR 后端RS性能有差异,请求开销差异 ...
- Ubuntu16 搭建Git 服务器
刚入职一个月左右,昨晚公司给培训了SVN和Git的使用.之前在研究生期间,和导师做项目就一直使用git做版本管理.想起研究生有一段时间,git总出错(秘钥都不好使了,只有某个机器生成的rsa key ...
- 【MySQL 读书笔记】当我们在执行该查询语句的时候我们在干什么
看了非常多 MySQL 相关的书籍和文章,没有看到过如此优秀的专栏.所以未来一段时间我会梳理读完该专栏的所学所得. 当我们在执行该查询语句的时候我们在干什么 mysql> select * fr ...
- 【CSS】利用宽高比例的媒体查询
aspec-ratio 取值:value (x/y) 接收min/max前缀:是 aspect-ratio描述了输出设备目标显示区域的宽高比.该值包含两个以/分隔的正整数.代表了水平像素数(第一个值) ...
- 接入HTTPS协议的CAS登录配置
1.在CAS服务器创建tomcat.keystore(记住keystone创建时输入的密码) keytool -genkeypair -alias "tomcat" -keyalg ...
- python3 魔法方法
魔法方法是一些内置的函数,开头和结尾都是两个下划线,它们将在特定情况下(具体是哪种情况取决于方法的名称)被Python调用,而几乎不需要直接调. 1.__new__ 2.__init__ 3.__st ...
- 通用的C#导出Excel 支持2003及2007以上版本
将数据导出到Excel,供用户下载是经常要使用到的一个功能,我这里进行了一些封装,目前已满足项目中导出的需求,使用DataReader导出Excel,支持自定义多表头,使用委托处理字段格式化及字段值的 ...
- 神经网络1_neuron network原理_python sklearn建模乳腺癌细胞分类器(推荐AAA)
sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...