恢复已添加但未提交的文件

3

我在项目中使用 Git 版本控制系统。今天,在完成工作后,我使用以下命令添加所有文件:

git add [file-name]

然后忘记提交更改到服务器,我执行了以下拉取和推送命令:

git pull --rebase origin [branch-name]
git push origin [branch-name]

一分钟后我意识到我忘记向服务器提交更改(使用命令git commit -m "comment")。现在,有没有办法找回我的更改?我已经使用谷歌搜索并尝试在Stack Overflow上寻找类似的问题,但未能得到满意的解决方案。


2
也许这个链接可以帮到你。https://www.quora.com/Git-revision-control/How-do-I-retrieve-added-files-but-not-committed-from-a-reset - Ravi Hirani
你的更改不是在暂存区吗? - Keyne Viana
1个回答

1

这个问题已经在SO上被回答过了,这里

根据knittl的说法,你应该执行git fsck --full --unreachable --no-reflog来获取对象(blob或tree)列表,然后使用git cat-file -p <object hash>读取对象,直到找到所需内容为止。

对于trees,你需要使用git命令:git read-tree


@Vivoconumxino,谢谢你的回答。我已经尝试过了,但是找不到任何blob对象。 - Gopal Joshi
你可能会看到一系列哈希值,不幸的是,对于其他答案,这似乎是唯一的可能性。 - javier_domenech

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接