使用Git X并且必须在某些事情上做到失败。看起来就像几天前我创建了一个名为detached HEAD
的分支并且一直致力于它。我的正常流程是提交master
,然后将其推送到origin
。但我不能推detached HEAD
。
我的下一站让我搞砸了。我选择git checkout master
- 我的detached HEAD
分支消失了。回到我的项目,过去几天我的所有变化都被抹去了。
无论如何我可以回复这些变化吗?
答案 0 :(得分:433)
如果checkout master
是你做的最后一件事,那么reflog条目HEAD@{1}
将包含你的提交(否则使用git reflog
或git log -p
来查找它们)。使用git merge HEAD@{1}
将其快速转换为母版。
修改强>
正如评论中所述,Git Ready has a great article就此而言。
git reflog
和git reflog --all
将为您提供错误提交的提交哈希值。
来源:http://gitready.com/intermediate/2009/02/09/reflog-your-safety-net.html
答案 1 :(得分:75)
如果你的分离HEAD是master的快进,你只想要上游的提交,你可以
git push origin HEAD:master
直接推,或
git checkout master && git merge [ref of HEAD]
会将其合并回您当地的主人。