恢复被旧版本覆盖的 git 存储库

恢复被旧版本覆盖的 git 存储库

我只是tar x错误地运行而不是运行tar c,并用几天前的版本覆盖了我的 git 存储库。这将保留我新创建的任何文件,包括.git.怎样才能尽可能的恢复呢?

答案1

先把整个乱七八糟的东西复制一份,以防万一。

git fsck将显示悬空对象和提交。找到最新的悬空提交。我将所有提交哈希值提供给gitk,它仅在顶部显示最新的“最近”哈希值。除了只有几个提交需要处理之外,我也只有一个分支需要恢复——如果有多个头,这会更加复杂。

然后git stash隐藏当前未提交的更改以供检查。

然后我就能够git reset --hard获得上面确定的提交哈希值。

git stash pop也非常干净地合并回来。我想我几乎已经得到了我想要的一切。

相关内容