git丢失commit代码恢复

上周代码在本地提交了,然后用git reset –hard到生产的版本,打算对比一下变化然后写变更手册,其实不应该reset的。

reset后发现之前的commit没了,还以为自己没提交,后来同事说可以恢复,就上网找了一下,然后真的成功了,不然写了两个星期的代码就没了。

先执行命令:

git fsck --lost-found
Bash

会列出dangling commit和dangling blob和他们的SHA1 id

使用命令

<span role="button" tabindex="0" data-code="git show
git show <SHA1>
Bash

会列出选择id的内容

然后使用命令

<span role="button" tabindex="0" data-code="git branch <SHA1> #创建新分支 git merge
git branch <SHA1> #创建新分支
git merge <SHA1>  #合并到当前分支
Bash

最后恢复成功了。

Comment