理解git 中的HEAD指针&branch指针

Yooye关注
2019.02.28 10:44:32字数 492阅读 668

HEAD指针

使用git checkout 来移动HEAD指针,移动的对象可以是分支指针也可以是快照。
HEAD指针可以指向快照也可以指向branch。当指向branch时提交后会和branch指针一起向后移动,当不指向branch提交时时则会在一个detached状态。

分支(branch)指针

使用git branch -f 来移动分支指针,移动的对象只能是快照。当且仅当HEAD指针指向分支指针的时候,提交才会有效。

实例

1.HEAD指针默认指向当前的分支指针,用星号表示,如master*

 
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指针的更多相关文章

  1. 图解git,用手绘图带你理解git中分支的原理和应用

    大家好,今天我们来聊git当中一个非常非常重要的特性,就是branch. git branch可以说是git当中最重要的概念了,甚至没有之一.因为git最重要的使用场景就是协同开发,大家一起在一个项目 ...

  2. 大话git中的撤销操作

    下面以现实场景作为情境. 基础知识,理解git中的几个区域 本地代码已经add,未commit 修改本地工作目录中的readme.md,添加文字"第一次修改" 然后查看下状态 ➜ ...

  3. 浅谈 .NET 中的对象引用、非托管指针和托管指针 理解C#中的闭包

    浅谈 .NET 中的对象引用.非托管指针和托管指针   目录 前言 一.对象引用 二.值传递和引用传递 三.初识托管指针和非托管指针 四.非托管指针 1.非托管指针不能指向对象引用 2.类成员指针 五 ...

  4. 这样子来理解C语言中指针的指针

    友情提示:阅读本文前,请先参考我的之前的文章<从四个属性的角度来理解C语言的指针也许会更好理解>,若已阅读,请继续往下看. 我从4个属性的角度来总结了C语言中的指针概念.对于C语言的一个指 ...

  5. 彻底理解javascript中的this指针

    http://javascriptissexy.com/understand-javascripts-this-with-clarity-and-master-it/ https://www.benn ...

  6. c语言中指向整型指针的指针的理解

    /************************************************************************* > File Name: ptr_ptr_i ...

  7. c语言中对指向指针的指针的理解?

    /************************************************************************* > File Name: ptr_to_pt ...

  8. C++中的指针,指针函数和函数指针

    指针是C或C++中的一大难题,因此弄懂指针对C和C++的学习有很大的帮助,最近一直在研究指针,因此写一篇随笔把心得记录一下. 简单来说指针也是一种变量,只不过指针变量所存储的不是我们直观上看到的,而是 ...

  9. C++语言中数组指针和指针数组彻底分析

    #################################                              ##       基本知识               ##        ...

随机推荐

  1. Missing android.support.FILE_PROVIDER_PATHS meta-data 报错原因分析

    此类错误多半因为拼写错误导致.有StackOverflow上便有网友将"FILE_PROVIDER_PATHS"误写成"FILE_PROVIDE_PATHS"的 ...

  2. docker 实践九:docker swarm

    介绍了 docker 三剑客中的 docker-machine 和 docker-compose 之后,就剩下一个 docker swarm 了.那本篇的主角就是它了. 注:环境为 CentOS7,d ...

  3. idea代码提示快捷键设置

    代码提示快捷键设置: keymap--Main Menu--Code--Completion--Basic

  4. VMware Workstation Pro 15 序列号

    VMware Workstation Pro 15 序列号: GA70H-8TYE2-H886P-04YZC-YVA84 YG5H2-ANZ0H-M8ERY-TXZZZ-YKRV8 UG5J2-0ME ...

  5. centos 7 配置pytorch运行环境

    华为云服务器,4核心8G内存,没有显卡,性能算凑合,赶上双11才不到1000,性价比还可以,打算配置一套训练densenet的环境. 首先自带的python版本是2.7,由于明年开始就不再维护了,所以 ...

  6. template中实现加减乘除数学运算

    django模板只提供了加法的filter,没有提供专门的乘法和除法运算:django提供了widthratio的tag用来计算比率,可以变相用于乘法和除法的计算. # 加法{{value|add:1 ...

  7. 安装HANA Rules Framework(HRF)

    1. 收集文档 1.1  SAP HANA Rules Framework by the SAP HANA Academy link 1.2  HANA Rules Framework (HRF) b ...

  8. idea+maven使用

    maven 1. 打开软件,点击configure-project default-settings.配置maven目录. 后续还需要配置一个地方是本地仓库的优先,在runner-VM Options ...

  9. Cron 定时任务表达式

    Cron Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: Seconds Minutes Hours DayofMonth M ...

  10. Oracle基础知识【1】

    目录: 1.Oracle创建库.表 2.Oracle数据怎删查改操作 3.Oracle数据约束条件 Oracle创建库.表: create user user05 identified by 1234 ...