Git / detached HEAD,回去工作?

时间:2012-02-17 00:14:20

标签: git bash branch zsh

我对我认为是我的分支做了几十次提交,然后检查了另一个分支。

愿意回到我的初始分支,我没有找到更新的代码。看完我在控制台的历史后,我明白我在一个独立的分支工作......

以某种方式可以获得我在独立分支上完成的工作吗?

2 个答案:

答案 0 :(得分:26)

是。您可以使用reflog。试试git log -g HEAD。这将显示HEAD的reflog,即HEAD指向的每个提交,以及它更改为该提交的原因。您应该能够找到签出分支的命令,并查看先前的提交内容。

您还可以使用其他语法索引到reflog中。如果您刚刚执行了git checkout branch,那么HEAD@{1}将引用之前签出的提交(因此您可以git checkout HEAD@{1}返回它)。或者,如果您知道10分钟前HEAD指向了正确的事情,则可以使用git checkout HEAD@{10.minutes.ago}

答案 1 :(得分:10)

放松,一切都还在那里:)

致电

git reflog

git将告诉您之前提交的HEAD提交内容。会有像

这样的行
checkout: moving from c70e36e25ac2dbedde6cb376719381fe0ab53f19 to master

告诉你提交提示的SHA1有一个独立的头。使用

创建指向该提示的新分支
git branch saved-commits c70e36e25ac2dbedde6cb376719381fe0ab53f19

现在你可以在提交应该去的分支顶部重新绑定那个分支。