如何恢复添加到git但被checkout覆盖的文件

sr0*_*r09 2 git git-revert git-add git-branch git-reflog

需要一些帮助!

  1. 我使用"git add"添加了一些文件
  2. 我想检查其他文件,不小心跑了"git checkout -f"

我知道可以使用reflog等来恢复这些更改,但我不知道怎么做!我知道有可能获得差异.我真的需要这些改变.

有任何想法吗??

sr0*_*r09 7

好的,我修好了.可以恢复已添加到索引的文件.只有在添加或存储文件时才可以恢复文件.

以下是步骤:

步骤1:

git fsck ??lost-found
Run Code Online (Sandbox Code Playgroud)

这将为您提供一个悬空blob ID列表 - 您添加和未提交的内容(在执行强制检出之前)

第2步:

git show <ID>
Run Code Online (Sandbox Code Playgroud)

这是与悬空blob相关联的ID.它会将文件的内容吐出到控制台.

而已!

这个帖子帮了我:从git reset --hard恢复?

  • 我真的很自豪你找到了这个答案.我没有意识到`git fsck`有一个选项.显然,我需要在管道上花更多的时间! (2认同)
  • @gakoto一旦你'git add`,你让Git"意识到"文件,正如解决方案所证明的那样.这实际上是已经提出的其他问题的重复,我只是很难找到一个好的规范,因为它往往会不时出现. (2认同)

归档时间:

查看次数:

865 次

最近记录:

11 年,6 月 前