我对我认为是我的分支做了几十次提交,然后检查了另一个分支。
愿意回到我的初始分支,我没有找到更新的代码。看完我在控制台的历史后,我明白我在一个独立的分支工作......
以某种方式可以获得我在独立分支上完成的工作吗?
答案 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
现在你可以在提交应该去的分支顶部重新绑定那个分支。