当前位置: 首页 > article >正文

git入门之HEAD介绍

目录

  • 前言
  • 一、HEAD 的含义与作用
  • 二、游离状态的触发场景及特征
    • 1. 触发条件
    • 2. 游离状态的特征
  • 三、游离状态的常见使用情况
    • 1. 临时查看历史代码
    • 2. 保留游离状态的提交
  • 四、注意事项与最佳实践
    • 1. 风险防范
    • 2. 状态检测技巧
  • 总结


前言

本文介绍Git核心概念HEAD的定义,作用和常见使用例子。

一、HEAD 的含义与作用

1.基础定义

HEAD 是 Git 的「游标指针」,始终指向当前所处的提交位置,有以下两种存在形式:

分支指针模式‌(常见状态):HEAD → 分支名 → 具体提交
例如用git log查看提交历史,下图中HEAD →master →commit 5c039
在这里插入图片描述

游离模式‌(detached HEAD):HEAD → 具体提交
在这里插入图片描述

2. 测试命令

cat .git/HEAD                   # 输出 ref: refs/heads/main
git checkout 84cb0              # 进入游离状态
cat .git/HEAD                   # 输出 e7d3e9d1d0a...

在这里插入图片描述

二、游离状态的触发场景及特征

1. 触发条件

  1. 检出历史提交
# git 2.23+ 版本中以下两条命令等价
git checkout 84cb0              #游离状态
git switch --detach 84cb0              #游离状态```
  1. 检出远程分支
git checkout origin/dev	 #以标签形式检出某次提交,然后HEAD处于游离状态
  1. 检出标签
git checkout v1.0.0	    #以标签形式检出某次提交,然后HEAD处于游离状态`

2. 游离状态的特征

  1. 允许进行提交操作,但新提交不会关联到任何分支
  2. 切换回分支时会弹出警告提示:Warning: you are leaving 1 commit behind…
  3. 未关联分支的新提交会被Git视为「悬挂提交」,2周后可能被垃圾回收清除

三、游离状态的常见使用情况

1. 临时查看历史代码

git checkout v1.2.3      # 游离状态下查看标签版本
git checkout master # 返回主分支,自动退出游离状态

2. 保留游离状态的提交

git checkout e7d3e9d    # 进入目标提交
# 进行若干修改并提交
git branch temp-branch   # 创建新分支保存提交。这个新的分支
git checkout master   # 安全切换回主分支

四、注意事项与最佳实践

1. 风险防范

  • 游离状态下提交后必须及时创建分支引用,否则会被当做悬挂提交,git会在一定事件后自动删除此悬挂提交
  • 使用 git reflog 可找回未关联分支的提交

2. 状态检测技巧

git symbolic-ref HEAD   # 检测是否处于游离状态 1. 游离状态的HEAD 返回 fatal: ref HEAD is not a symbolic ref 2. 正常状态返回分支路径

游离状态返回如下:
在这里插入图片描述
正常状态返回如下:
在这里插入图片描述


总结

git入门系列之HEAD核心概念,作用和常见使用例子介绍,以及HEAD的正常状态,游离状态对比。抛砖引玉,日积月累

http://www.lryc.cn/news/2384686.html

相关文章:

  • 车道线检测:自动驾驶的“眼睛”
  • 中国软件行业 2024 年度分析报告
  • 力扣面试150题--填充每个节点的下一个右侧节点指针 II
  • 使用openvino和onnxruntime的SDK部署yolo11检测模型
  • C 语言学习笔记(指针4)
  • PostgreSQL 数据库备份与恢复
  • QT高DPI支持
  • MySQL的相关操作
  • 从elf文件动态加载的过程解释got,plt及got.plt,plt.sec
  • 鸿蒙HarmonyOS多设备流转:分布式的智能协同技术介绍
  • XXE(外部实体注入)
  • jenkins凭据管理
  • 驱动开发硬核特训 · Day 31:理解 I2C 子系统的驱动模型与实例剖析
  • 9大开源AI智能体概况
  • 【python】局域网内通过python远程重启另一台windows电脑
  • 超越感官的实相:声、光、气味的科学与哲学探微
  • Python邮件处理:POP与SMTP
  • 什么是VR场景?VR与3D漫游到底有什么区别
  • python学习day2:进制+码制+逻辑运算符
  • 【分布式文件系统】FastDFS
  • 14、自动配置【源码分析】-初始加载自动配置类
  • word为章节标题添加自动编号
  • 无人机飞行间隔安全智能评估、安全风险评估
  • C++成员对象和封闭类
  • 【VLNs篇】03:VLMnav-端到端导航与视觉语言模型:将空间推理转化为问答
  • PCB设计实践(二十五)贴片电阻与插件电阻的全面解析:差异、演进与应用场景
  • 知道不知道
  • 文章记单词 | 第106篇(六级)
  • SpringBoot项目中Redis的使用
  • Canvas设计图片编辑器全讲解(一)Canvas基础(万字图文讲解)