【Git】Git的HEAD和branch的理解
一句话总结:
HEAD本质上是一个指针,branch其实也是一个链表,我们下文会进行一步步操作,做验证
HEAD指针可以什么都不指向,也可以指向某一个分支的某一个commit上。
HEAD最终落脚于某一个分支的具体的commit的
我们想要比对两个分支之间的差异,使用的是diff命令
git diff 分支1 分支2
也可以使用两个commit具体的地址号进行比对,HEAD也可以指代当前的分支的某一次提交,可以使用HEAD^1
表示HEAD的父类,也就是分支上的上一次提交,上上一次呢?HEAD^1^1
git diff HEAD HEAD~1 # HEAD指代的分支提交的跟上一次的比较
git diff HEAD HEAD^1 # HEAD指代的分支提交的跟上一次的比较
git diff HEAD HEAD^^ # 最近的一次提交对比上上一次提交
git diff HEAD HEAD~2 # 最近的一次提交对比上上一次提交
分离头指针
当我们直接通过git checkout ‘commit的hash编号’ 进行操作时,其实将我们的头指针指向了一个老的提交信息那,把头指针放到了一个全新的没有被git“承认”的未命名分支上了。虽然我们看起来还在某一个分支上,其实头指针已经和当前的分支分离了。
这时我们再看git log,可以看到HEAD指针没有指向任何的分支
此时我们再做的一些提交和变更,也是可以的,但是如果我们此时,切换回了其他的分支,我们在这个未命名的分支上做的所有操作,都不会被存储。
- 如何弥补呢?
可以进行创建新的分支,用以保存,我们在这个未命名的分支上所做的所有改动。
git branch <new-branch-name> '提交的编号'
【Git】Git的HEAD和branch的理解相关推荐
- 关于git中,两个branch自动同步的问题和解决
关于git中,两个branch自动同步的问题和解决 1问题描述 2问题原因 3解决方法 1问题描述 在git中,如果在一个branch中对代码进行了修改,切不做任何操作直接checkout另一个bra ...
- git push 出现 The current branch dev has no upstream branch.的问题
git push 出现 The current branch dev has no upstream branch.的问题 原因:本地分支没有和远程分支关联,导致无法push 解决方法:git pus ...
- [Git] Git整理(一) Git的安装、配置和基本操作
参考网站:https://git-scm.com/book/zh/v2/ 1.版本控制简介 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统,在版本控制发展的历史中,首先出 ...
- git: git add --ignore-removal git add --all 区别
遇到的问题 在仓库中删除文件后,试图直接用 git add . 将所有删除工作提交暂存区,结果遇到了报错: $ git add . warning: You ran 'git add' with ne ...
- 初探Git git基本用法
Git 是当前最流行的版本控制程序之一,文本包含了 Git 的一些基本用法 创建 git 仓库 初始化 git 仓库 mkdir project # 创建项目目录 cd project # 进入到项目 ...
- 这才是真正的Git——Git实用技巧
作者:lzaneli,腾讯 TEG 前端开发工程师 本篇是这个系列的最后一篇文章,之前的文章主要讲的是基础原理部分(见上方专辑),在理解原理的基础上,介绍一些实用的技巧给大家,希望能提高大家的开发效率 ...
- git编辑器选哪个_[Git]Git创建和修改代码库
有了上一篇的简易Git使用指南,接下来我们就可以创建自己的代码库了 创建代码库 1.把文件夹变成git文件夹 git init 这样子就这里面的内容就可以git了 2.把要git的文件放入暂存区 gi ...
- 手把手教你入门Git --- Git使用指南(Linux)
手把手教你入门Git - Git使用指南(Linux) 系统:ubuntu 18.04 LTS 本文所有git命令操作实验具有连续性,git小白完全可以从头到尾跟着本文所有给出的命令走一遍,就会对gi ...
- git git 查看远程库_如何从Git远程存储库中提取
git git 查看远程库 Note: This the fourth video in the Git for beginners series. Watch the first video her ...
- 什么是Git?——Git的学习与使用(一)
本系列博文将介绍Git以及相关工具的基本使用,主要参考书籍<Pro Git>.对其中的内容进行总结梳理.Git是一个版本控制工具,不管是我们自己的学习或者是公司的项目,一般都会使用一个版本 ...
最新文章
- java 微信支付实现
- Apache seaTunnel的本地启动
- commit 规范性提交
- 【比赛经验】ALL in BERT:一套操作冲进排行榜首页
- Windows搭建SVN实现访问远程SVN库
- 8086 MOV 指令的注意事项
- Thrift 的原理和使用
- 线粒体和叶绿体的基因组特点_叶绿体和线粒体基因组的组装研究
- Sitecore 8.2 防火墙规则的权威指南
- ios 图片简单360度旋转动画
- 没有人会疼自己没人会懂,会理解:伤感空间日志
- mysql组合索引没效果的原因
- JAVA视频学习笔记-马士兵(六)
- 历届试题 九宫重排 广度优先搜索+康拓排序
- Java 程序员常用的开发工具
- 做视频什么配置计算机合适,装机干货!两款适合视频剪辑的电脑配置
- 一文读懂区块链隐私技术系列之环签名
- 软件测试人员正在逐步被自动化所替代
- 如果你觉得学习 Git 很枯燥,那是因为你还没玩过这款游戏!
- tomcat 黑马学习笔记
热门文章
- 列表排序-第14届蓝桥杯STEMA测评Scratch真题精选
- DHCP协议说明及报文分析
- Android Native 代码 Release 编译 - 隐藏符号表
- 什么是JavaBean?什么是Bean?
- "Selenium + Firefox"如何使用带用户名密码认证的HTTP代理
- pubg体验服服务器维护,简单1招,教你快速获得《Pubg Mobile》体验服“邀请码”!...
- Excel除了复制粘贴,更快速的将单元格区域的公式转换成数值?
- JM中的一些问题总结
- R的绘图(二)——基本图形
- 天津出差系列(一)----第一天