文章目录
- 1 什么是git分离头指针
- 2 将git 分离头指针所指向的代码(commit id)保存下来
- 总结
本文将主要介绍一下git分离头指针状态,并记录如何将分离头指针状态的代码合并到分支中。
1 什么是git分离头指针
当我们使用了git check out <commit id>
,在更改后执行git commit -m 'xxx'
,会生成新的<commit id 2>
。此时,HEAD将不再指向master
或某个分支,而是直接指向<commit id 2>
。
存在问题:此时候所提交的代码并没有和某个分支对应起来,当切换到其他分支的时候(比如master分支),容易丢失代码。
应用场景:在自己做尝试或者测试的时候可以分离头指针,当尝试完毕没有用的时候可以随时丢弃,但是如果觉得尝试有用,那么可以新建一个分支保存下来。
参考:https://time.geekbang.org/course/detail/100021601-72013克里斯 的评论。
2 将git 分离头指针所指向的代码(commit id)保存下来
参考:Git头指针分离状态
具体操作示例如下:
- 通过
git branch <branchName> <commit id>
给这个提交创建一个临时的分支,这个分支是基于头指针分离下修改提交的<commit id>
创建的,如:
git branch temp d521256
这将分创建分支temp
。如果有多个可重复执行多个分支分别保存分离头指针代码。
- 如果需要将分支与
master
合并,则可执行:
git merge temp
值得注意的是,如果master
分支在temp
分支前,需要先执行:
git checkout master
PS:如果存在多个分离头指针HEAD,一定要每个<commit id>
保存到分支后再执行git checkout master
,不然会将没保存到分支的<commit id>
全部删除,幸好我操作前备份了文件。
- 最后可选择将临时分支
temp
删除:
git branch -d temp
总结
以上就是本文要讲的内容,本文仅仅简单介绍了遇到git分离头指针状态时如何处理,作为个人记录,也供大家一起学习,希望能帮到大家。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)