• Git 中的 HEAD


    1、Git HEAD 存放位置

    HEAD 指的就是 .git/HEAD 文件,它存储着当前分支的名字,我们可以打这个文件看一看:

    ref: refs/heads/master
    
    • 1

    由此,我们可以得知当前所处于 master 分支。

    如果我们继续往下走:打开 refs/heads/master 文件,一串密码映入眼帘:

    7e136f508b982790db5686482075c60ee3ee4fed
    
    • 1

    这是master分支上最新提交的commit id。

    其实,我们可以看下面的这张示意图,对于header的理解将会一目了然:

    在这里插入图片描述

    2、Git HEAD 的作用

    2.1、Git HEAD 的作用一:显示当前所出于哪个分支

    我们查看git提交日志的时候,会经常碰到head,如下所示:

    $ git log
    commit c4f9d71863ab78cfca754c78e9f0f2bf66a2bd77 (HEAD -> master)
    
    • 1
    • 2

    如上所示,HEAD -> master 告诉我们当前处于 master 分支。

    2.2、Git HEAD 的作用二:指代当前分支的最新提交的commit id

    有时候,我们commit提交代码后,发现这一次commit的内容是有错误的,面对这种情况有两种解决方法:

    解决方法1:修改错误内容,再次commit一次
    
    解决方法2:使用git reset命令撤销这一次错误的commit
    
    • 1
    • 2
    • 3

    此时,该head出场了,它常常与reset连用,如下所示:

    $ git reset HEAD <file>
    
    • 1

    等价于:

    $ git reset commit_id_latest <file>   //commit_id_latest 需替换为实际的最新的commit it 
    
    • 1

    因为head表示当前分支的最新提交的commit id,上述命令的目的是将文件file恢复到指定的commit id。

    此外,我们查看最近一次提交的改动内容,可以通过:

    git diff  HEAD^ HEAD
    
    • 1

    HEAD^表示倒数第一次提交,即最近一次提交
    HEAD^表示倒数第二次提交
    HEAD^^表示倒数第三次提交

  • 相关阅读:
    节点导纳矩阵
    [鹏城杯 2022]简单的php - 无数字字母RCE+取反【*】
    单链表经典OJ题:反转链表
    Clion学习
    XSS练习---一次循环和两次循环问题
    Java面试题(每天10题)-------连载(31)
    【C++】泛型编程 | 函数模板 | 类模板
    切换nvcc 的CUDA 版本
    热加载技术:修改Python代码并实时查看结果 ⛵
    平凡前端之路_16.变量的解构赋值
  • 原文地址:https://blog.csdn.net/m0_45406092/article/details/132581163