看起来像几天前我创建了一个分支叫做分离HEAD,并一直致力于它。我的正常流程是提交到master,然后将其推到origin。但我不能推分离的头。
我的下一站毁了我。我选择了git checkout master -我分离的HEAD分支消失了。回到我的项目,我在过去几天的所有更改都被删除了。
有什么办法能让我把这些零钱拿回来吗?
看起来像几天前我创建了一个分支叫做分离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]
会将它合并回本地主机。