Git 分离头指针 HEAD

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git 分离头指针 HEAD相关的知识,希望对你有一定的参考价值。

参考技术A 当前 Git 仓库的头指针不指向任何分支,处于游离状态或者说分离状态。

如果正的游离状态工作,提交 commit,突然切换到其他分支工作。很有可能丢失游离状态的工作内容。
当我们做一些不确定的工作时,只是在尝试。此时分离头指针就很有用,如果尝试成功了,就创建一个分支,然后合并到主分支上。如果失败,要放弃分离后的 commit, 则直接切换到其他分支,继续工作,不必理会。

其实,HEAD 归根结底指向的是一个 commit。分支的最后一个 commit 或者游离状态最后一个 commit。

分离头指针(detached HEAD)

通常,我们工作在某一个分支上,比如 master 分支。这个时候 master 指针和 HEAD 指针是一起前进的,每做一次提交,这两个指针就会一起向前挪一步。但是在某种情况下(例如 checkout 了某个具体的 commit),master 指针 和 HEAD 指针这种「绑定」的状态就被打破了,变成了分离头指针状态。我那天遇到的情况是,master 和 HEAD 指针看上去指在同一个 commit 上,但其实已经处在分离头指针状态。当我在此时又做了一次新的提交时,HEAD 指针跑到 master 指针前面去了。如果我直接检出 master 分支,HEAD 指针就会回退一格到 master 指针的位置,而最新的那次提交就变成了孤立的提交,没有任何分支能追踪到它,刚才的活白干了。

 

# 强制将 master 分支指向当前头指针的位置
$ git branch -f master HEAD
# 检出 master 分支
$ git checkout master

 

参考:https://blog.csdn.net/qq_40718168/article/details/89521028

以上是关于Git 分离头指针 HEAD的主要内容,如果未能解决你的问题,请参考以下文章

分离头指针

git使用技巧

git引用初识(HEAD分支tag)

Git入门与基本使用

git 学习

Git分支