1

我正在使用git-review进行Gerrit代码审查。

我在使用这个工具时遇到了一个非常严重的问题:我丢失了我的更改。

这是我所做的:

  • 添加文件git add
  • 忘了git commit
  • 执行git review --reviewers johndoe

所有添加的文件现在都消失了,更改丢失了。git status说什么都没有改变。

git review给了我以下信息:

“HEAD 和 origin/master 之间没有变化。提交审核将毫无意义。”

更改怎么会丢失?有没有办法恢复?

4

1 回答 1

1

既然你已经完成了git add,Git 的内部结构中应该仍然有你更改文件的 blob,尽管没有它们的文件名。有一些方法可以恢复它们,但您需要一些耐心和取证工作,将 blob 链接到它们所属的文件。

Git 对象的内部存储记录在这里:https ://git-scm.com/book/en/v2/Git-Internals-Git-Objects

您也许可以使用 git-recover 恢复更改的文件:https ://github.com/ethomson/git-recover

关于这个不同但相关的问题的讨论也可能会有所帮助:如果我中断 git add 命令会发生什么?

于 2019-01-18T15:20:40.887 回答