看起来像几天前我创建了一个分支叫做分离HEAD,并一直致力于它。我的正常流程是提交到master,然后将其推到origin。但我不能推分离的头。

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

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


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

正如评论中提到的,Git Ready有一篇很棒的文章。

Git reflog和Git reflog——都将给你错误放置的提交的提交哈希值。

来源: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]

会将它合并回本地主机。