Git--问题(I)

detached HEAD(游离态的HEAD) 切换到其他分支,导致代码丢失

科普 HEAD 知识

HEAD 基础

git checkout 命令实际上是指修改HEAD文件的内容,让其指向不同的branch。
HEAD文件指向的branch就是当前branch 。
一般来讲,HEAD的内容是指向staging(暂存区)的master文件的。

 ref: refs/heads/master

detached HEAD

如果让HEAD文件指向一个commit id(对一个HEAD进行一次代码或文件提交),那就变成了detached HEAD。git checkout 可以达到这个效果,用下面的命令:

//laea8d9是最近的一次commit id,^指的是之前一次,因此上面的操作结果是让HEAD文件包含了倒数第二次提交的id.
git checkout 1aea8d9^




解决方法

Git--问题(I)_第1张图片
游离态的HEAD

解决办法:
① 查找提交记录

$ git reflog
Git--问题(I)_第2张图片
在游离态的HEAD上的分支提交记录

② 检出需要的提交记录

$ git checkout 408b379

③ 创建develop 分支,并切换到该develop 分支

$ git checkout -b develop
Git--问题(I)_第3张图片
切换到develop分支

⑤ git checkout master 切换到master分支

 $ git checkout master

⑥git merge develop 合并develop分支

$ git merge develop

你可能感兴趣的:(Git--问题(I))