如何让我的'分离头'提交回master

看起来像几天前我创建了一个名为detached HEAD的分支,并一直在提交给它。我的正常流程是提交到master,然后将其推到origin。但是我不能推detached HEAD

我的下一站毁了我。我选择了git checkout master -我的detached HEAD分支消失了。回到我的项目,我在过去几天的所有更改都被删除了。

有什么办法能让我把这些零钱拿回来吗?

119646 次浏览

如果checkout master是你做的最后一件事,那么reflog条目HEAD@{1}将包含你的提交(否则使用git refloggit log -p来查找它们)。使用git merge HEAD@{1}快进到master。

如评论中所述,Git Ready有一篇很棒的文章在此。

git refloggit reflog --all将给你错误放置的提交的提交哈希值。

Git Ready: Reflog, Your Safety Net

来源:http://gitready.com/intermediate/2009/02/09/reflog-your-safety-net.html

如果你的分离HEAD是一个快进的master,你只是想向上提交,你可以

git push origin HEAD:master

直接推动,或

git checkout master && git merge [ref of HEAD]

会将它合并回本地主机。