git 分离头指针

git checkout 是如何工作的

简单来说git checkout有两种使用方式

  • git checkout 加分支名称
git checkout master
  • git checkout 加一个具体的commit 5d27a489853c9c51 是一个具体的提交的hash 值。
git checkout 5d27a489853c9c51

在这里插入图片描述

detached head 分离头指针

正常状态头指针HEAD指向的是分支 branch 也就是当前分支中的最后一次提交。
在这里插入图片描述

运行 之后

git checkout 87ec91d

在这里插入图片描述

这是分离的头部状态;HEAD直接指向提交而不是分支。

分离头指针的作用

分离头指针可以让我们回到过去。可以通过git log 命令回到我们想去的任何地方。后悔药啊!
不仅如此还可以在历史版本的基础上做修改。
执行命令

git checkout 87ec91d

执行结果
在这里插入图片描述

实例说明

1 切换分离头指针状态

git checkout 87ec91d

在这里插入图片描述

2 在此状态做修改

在这里插入图片描述

如下

echo "Welcome to the alternate timeline, Morty!" > new-file.txt
git add .
git commit -m "Create new file"
echo "Another line" >> new-file.txt
git commit -a -m "Add a new line to the file"

3 查看头指针

 git log --oneline

在这里插入图片描述
在这里插入图片描述

4 保留更改或者是丢弃

如果要保留这些更改,我们应该怎么做?如果你想丢弃它们,我们该怎么办?这就是我们接下来要看到的。

  • 如果我们是无意中checkout 到了分离头指针状态。想要恢复到原先状态。
git checkout <branch-name>
  • 如果在历史版本中做了一些实验性的改变想要丢弃它。直接返回原先的分支就行。

如果要保留使用分离头所做的更改,只需创建一个新分支并切换到它。我们可以在到达分离的头部或创建一个或多个提交后立即创建它。结果是一样的。唯一的限制是,我们应该在返回正常分支之前执行此操作。如果执行切换到正常分支也会有提示。
在这里插入图片描述

5保存分支的修改

git branch new-branch 29e503c
git checkout new-branch

在这里插入图片描述
在这里插入图片描述


版权声明:本文为wangrui1605原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/wangrui1605/article/details/122354041