理解git 中的HEAD指针&branch指针
理解git 中的HEAD指针&branch指针
HEAD指针
使用git checkout
来移动HEAD指针,移动的对象可以是分支指针也可以是快照。
HEAD指针可以指向快照也可以指向branch。当指向branch时提交后会和branch指针一起向后移动,当不指向branch提交时时则会在一个detached状态。
分支(branch)指针
使用git branch -f
来移动分支指针,移动的对象只能是快照。当且仅当HEAD指针指向分支指针的时候,提交才会有效。
实例
1.HEAD指针默认指向当前的分支指针,用星号表示,如master*
2.移动HEAD指针,git checkout C1
这个时候HEAD指针指向的是快照,这个时候指针的状态称之为游离状态,detached。
3.HEAD指针在游离状态下提交,git commit
游离状态下提交的commit,没有分支指针指向。可以在游离状态下的快照新建分支或强制移动已存在的分支
4.移动HEAD指针,让他指向master分支指针git checkout master
5.在master分支指针上提交git commit
这个是正常的提交,和游离状态下的提交是不一样的
6.给detached状态下的快照添加分支。在3中我们提到给detached状态下的快照增加分支的两种方法。
6.1给detached状态下的快照新建一个分支
6.1.1 将HEAD指针移动到detached状态的快照git checkout C2
6.1.2添加分支git branch new
6.1.3将HEAD指针移动到new分支指针上就可以在new分支上提交了git checkout new
6.2移动已存在的分支到detached状态的分支git branch -f master C2
这个时候master分支以前的快照C3就变成了detached状态了
本文转载自:http://blog.csdn.net/claroja
理解git 中的HEAD指针&branch指针的更多相关文章
- 图解git,用手绘图带你理解git中分支的原理和应用
大家好,今天我们来聊git当中一个非常非常重要的特性,就是branch. git branch可以说是git当中最重要的概念了,甚至没有之一.因为git最重要的使用场景就是协同开发,大家一起在一个项目 ...
- 大话git中的撤销操作
下面以现实场景作为情境. 基础知识,理解git中的几个区域 本地代码已经add,未commit 修改本地工作目录中的readme.md,添加文字"第一次修改" 然后查看下状态 ➜ ...
- 浅谈 .NET 中的对象引用、非托管指针和托管指针 理解C#中的闭包
浅谈 .NET 中的对象引用.非托管指针和托管指针 目录 前言 一.对象引用 二.值传递和引用传递 三.初识托管指针和非托管指针 四.非托管指针 1.非托管指针不能指向对象引用 2.类成员指针 五 ...
- 这样子来理解C语言中指针的指针
友情提示:阅读本文前,请先参考我的之前的文章<从四个属性的角度来理解C语言的指针也许会更好理解>,若已阅读,请继续往下看. 我从4个属性的角度来总结了C语言中的指针概念.对于C语言的一个指 ...
- 彻底理解javascript中的this指针
http://javascriptissexy.com/understand-javascripts-this-with-clarity-and-master-it/ https://www.benn ...
- c语言中指向整型指针的指针的理解
/************************************************************************* > File Name: ptr_ptr_i ...
- c语言中对指向指针的指针的理解?
/************************************************************************* > File Name: ptr_to_pt ...
- C++中的指针,指针函数和函数指针
指针是C或C++中的一大难题,因此弄懂指针对C和C++的学习有很大的帮助,最近一直在研究指针,因此写一篇随笔把心得记录一下. 简单来说指针也是一种变量,只不过指针变量所存储的不是我们直观上看到的,而是 ...
- C++语言中数组指针和指针数组彻底分析
################################# ## 基本知识 ## ...
随机推荐
- Missing android.support.FILE_PROVIDER_PATHS meta-data 报错原因分析
此类错误多半因为拼写错误导致.有StackOverflow上便有网友将"FILE_PROVIDER_PATHS"误写成"FILE_PROVIDE_PATHS"的 ...
- docker 实践九:docker swarm
介绍了 docker 三剑客中的 docker-machine 和 docker-compose 之后,就剩下一个 docker swarm 了.那本篇的主角就是它了. 注:环境为 CentOS7,d ...
- idea代码提示快捷键设置
代码提示快捷键设置: keymap--Main Menu--Code--Completion--Basic
- VMware Workstation Pro 15 序列号
VMware Workstation Pro 15 序列号: GA70H-8TYE2-H886P-04YZC-YVA84 YG5H2-ANZ0H-M8ERY-TXZZZ-YKRV8 UG5J2-0ME ...
- centos 7 配置pytorch运行环境
华为云服务器,4核心8G内存,没有显卡,性能算凑合,赶上双11才不到1000,性价比还可以,打算配置一套训练densenet的环境. 首先自带的python版本是2.7,由于明年开始就不再维护了,所以 ...
- template中实现加减乘除数学运算
django模板只提供了加法的filter,没有提供专门的乘法和除法运算:django提供了widthratio的tag用来计算比率,可以变相用于乘法和除法的计算. # 加法{{value|add:1 ...
- 安装HANA Rules Framework(HRF)
1. 收集文档 1.1 SAP HANA Rules Framework by the SAP HANA Academy link 1.2 HANA Rules Framework (HRF) b ...
- idea+maven使用
maven 1. 打开软件,点击configure-project default-settings.配置maven目录. 后续还需要配置一个地方是本地仓库的优先,在runner-VM Options ...
- Cron 定时任务表达式
Cron Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: Seconds Minutes Hours DayofMonth M ...
- Oracle基础知识【1】
目录: 1.Oracle创建库.表 2.Oracle数据怎删查改操作 3.Oracle数据约束条件 Oracle创建库.表: create user user05 identified by 1234 ...