我有一个非常简单的Git项目,只有一个Master分支而且没有起源.
在我的项目的某个地方,我不小心在我的项目中创建了一个独立的HEAD,然后在分离的一堆提交后HEAD
,尝试将它合并回我的Master
分支.我在SourceTree中这样做,起初合并似乎工作(图表显示主人进入头部,并且我修复了合并冲突),但后来我双击Master
切换到那个分支然后突然我HEAD
消失了.我无法在所有分支下的SourceTree中找到它,git branch
并且git log
在命令行上也只显示我的主分支.
反正有没有从我失去的超脱中取回我的承诺HEAD
?
我在SourceTree的任何地方都找不到它
返回命令行界面并执行git reflog.
您应该能够在该日志中找回HEAD的SHA1.
请注意,您不需要将已分离的HEAD分支"合并"回主控.
您只需将master重置为当前分离的HEAD提交即可.
请参阅" 如何修复Git分离头? "
git checkout master
以纯SourceTree方式(如在此线程中)
您还可以检出现有分支,然后右键单击最新提交并选择
Reset <branch>
此提交将分支指针移动到您希望的位置.当
HEAD
显示,这意味着你在一个分离的头,这意味着你没有分支签出,它们是由时任提交不会动任何分支机构.如果你在SourceTree中签出一个分离的HEAD,它会很明显地警告你,所以也许这是事先在命令行上完成的,你在SourceTree中看到了后效.
替代方案:
HEAD
使用new branch命令从我的" "分支(根本不是一个分支)创建一个分支.那时头不见了.
然后我能够将该分支与master合并,并删除我创建的不需要的分支HEAD
.
这对我有用:
使用git reflog
命令查找消失的头版本.
使用git checkout @{-1}
移动HEAD回一个消失了.数字-X
是从当前头部消失的提交数量.-1
意味着消失的版本1
远离当前的HEAD.
创建一个分支以保存消失的版本