git - 在 git scm中,撤销"git checkout HEAD foo.c"

  显示原文与译文双语对照的内容
0 0

我误签了一份我最新修改的文件。


git checkout HEAD foo.c

这意味着我丢失了我想要提交的所有更改。

是否可以在git缓存或者某些本地历史中找到这些更改?

时间: 原作者:

0 0

如果你在( 然后恢复它们) 工作时没有将更改保存到文件中,那么你就无能为力了。

如果你使用 git add ( 你可能已经知道了因为你要提交) 添加了文件的更改,那么blob应该已经在git的数据库中了。 你可以使用 git fsck 查找悬空对象。 查找blob并检查它们- 使用 git show 或者 git cat-file - ( 需要时间,我知道。),但如果你很幸运,你会发现文件的内容。 使用 git cat-file blob $hash_of_object> foo.c 恢复文件的内容

原作者:
0 0

除非你已经提交了它,否则( 或者把它藏起来或者把它添加到索引) git将不知道你的本地更改。 所以没有。

原作者:
...