如何检索远程跟踪分支的意外提交?

时间:2012-02-20 17:39:39

标签: git

根据GitGuys

  

用户不应修改远程跟踪分支(不要通过git checkout将git分支设置为远程跟踪分支,然后尝试修改远程跟踪分支)。

不幸的是,这正是我偶然做到的,并且承诺了一天的工作。现在切换到不同的分支后,这些提交已经消失,无法在任何现有分支的本地或远程分支的日志中找到。

幸运的是,我仍然在.git / logs / HEAD中看到它们,并且使用带有哈希值的git show给我代码差异,所以它们并没有完全丢失。我的问题:

  • 如何将这些更改纳入常规分支?
  • 如果不应该提交远程跟踪分支,为什么不会导致错误?

1 个答案:

答案 0 :(得分:1)

提交可能仍然存在。您只需要找到指向它们的引用。

使用git reflog查找您丢失的上一次提交。找到该提交后,使用git checkout -b <branch name> <lost commit hash>创建并签出指向该提示的分支。

就错误而言,您应该收到一条消息,说您正处于无头状态。