【发布时间】:2021-08-03 13:46:04
【问题描述】:
最近,我对 100 多个文件进行了许多更改。然后,不幸的是,我检查了以前的提交。结帐后,我的所有更改都消失了,不再可见(我正在使用 Fork 与 git 一起工作)。我的更改真的丢失了吗?还是可以恢复更改?
请帮忙!
【问题讨论】:
-
如果你真的没有提交或隐藏,那么是的,你的工作可能会丢失。如果您的编辑器或 IDE 支持本地历史记录,那么您也许可以恢复那里的工作。
-
您使用的命令是什么?如果要覆盖未暂存的更改,Git 通常不允许签出。
-
@Lars 太糟糕了。我认为如果使用了命令行,git 本身会警告你。我不知道有什么 GUI 可以做到这一点?
-
鉴于你没有使用 Git CLI,所有的赌注都可能在这里被取消。但是,如果文件在 Git-CLI 术语中是
git add-ed,则每个文件的 data 都在 Git 中。 发现数据是棘手的部分。您可以使用git fsck找到悬空的blob;在命令行中添加--lost-found会使Git 将数据复制到.git/lost-found/other/中以哈希ID 命名的文件中。找出哪个悬空 blob 数据文件对应于哪个原始文件是hard。通常很难做到毫无意义:手动重建文件更容易。但这可能会有所帮助。 -
我已经回答了here 如何恢复暂存文件。其他答案也很有趣。但是您确定您的更改没有被隐藏吗?
标签: git git-commit git-stage