git

使用git reflog恢复由于reset丢掉的commit

May 31, 2015 · 1 分钟阅读
  1. 首先,你必须没有跑过git的垃圾处理,“git gc”(这个我放心,估计我的同事连这个命令的存在都不知道),这样,所有那些于head脱离的处于悬吊状态(dangling)的commits都还没有消失。

  2. 运行,“git reflog” 命理 ( reflog 代表 reference log )。这将列出一系列历史的commits,包括它们的commit SHA1 ID 和一个commit的短消息。显示的这个commit的短消息非常有用,因为一般你不会记得你的commit的SHA1,但是你会认出你的commit的消息。

  3. 找到你需要恢复的commit的SHA1。比如,假设你需要恢复的commit的ID是 SHA33ddf。

  4. 运行命令 “git branch branchName SHA33ddf”,这将会创建一个新的分支并指向你的commit SHA1。你的工作就神奇般的恢复了!

  5. 最后一步可能是你需要设定你的新建的这个分支和远程相应地分支跟踪。假设你的远程源的名字是upstream,运行命令"git branch -u upstream/branchName branchName"。

← 返回所有文章