理解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. 监控SQL:通过SQL Server的DML触发器来监控哪些IP对表的数据进行了修改(2)

    原文:监控SQL:通过SQL Server的DML触发器来监控哪些IP对表的数据进行了修改(2) 在有些公司中,由于管理的不规范,或者是便于开发人员直接修改.部署程序,往往任何开发人员,都能登录到生产 ...

  2. Asp.net Core 2.0 OpenId Connect Handler缺失Claims?

    原文:https://leastprivilege.com/2017/11/15/missing-claims-in-the-asp-net-core-2-openid-connect-handler ...

  3. java 爬虫:开源java爬虫 swing工具 Imgraber

    1实现点: 1.返回给定URL网页内,所有图像url list 2.返回给定URL网页内,自动生成图像文件路径.txt 文件 3.返回给定URL网页内,下载txt文件指定的图片url,并将所有图像保存 ...

  4. vue单页面应用加入百度统计

    版权声明:本文为CSDN博主「钟文辉」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/qq_39753974/a ...

  5. python之函数基本使用

    函数的定义: 函数是一段具有特定功能的.可重用的语句组,用函数名来表示并通过函数名进行功能调用. 使用函数主要有两个目的:降低编程难度和代码重用. python定义一个函数是通过使用def保留字的方式 ...

  6. iOS - error:unrecognized selector sent to class 导入第三方SDK .a后不识别,运行崩溃

    今天将app统计的.a静态库包含到一个app应用中,调试时报下面的错误: *** Terminating app due to uncaught exception 'NSInvalidArgumen ...

  7. vue滚动分页加载以及监听事件处理

    <template> <div class="bodyContainer"> <div class="allContent" id ...

  8. Vivado cordic IP求模求角教程

    前言 当需要对复数求模的时候,用FPGA怎么求呢?怎么开根号? 方法1:先求幅值平方和,再使用cordic IP开根号.(蠢办法) 方法2:直接用cordic求取模值. 此处只介绍方法2,资源占用更少 ...

  9. How to : SAP PI Cache Refresh

    Requirement : Identify various tools/resources available to perform SAP PI Cache refresh . Please no ...

  10. SAP Marketing Cloud功能简述(一) : Contacts和Profiles

    Dong Grace是Jerry的同事,目前是SAP成都研究院数字创新空间团队的一名实习生,明年7月才毕业.这篇文章是Grace对SAP Marketing Cloud功能梳理的一篇学习笔记,因为篇幅 ...