Git/detached HEAD,回去工作?

apn*_*ing 20 git bash branch zsh

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

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

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

Lil*_*ard 26

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

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


Sve*_*ach 10

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

打电话吧

git reflog
Run Code Online (Sandbox Code Playgroud)

git会告诉你HEAD之前的指示.会有像这样的一条线

checkout: moving from c70e36e25ac2dbedde6cb376719381fe0ab53f19 to master
Run Code Online (Sandbox Code Playgroud)

用一个独立的头告诉你提交提示的SHA1.使用创建指向该提示的新分支

git branch saved-commits c70e36e25ac2dbedde6cb376719381fe0ab53f19
Run Code Online (Sandbox Code Playgroud)

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