首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从git重置中恢复--难吗?

从git重置中恢复--难吗?
EN

Stack Overflow用户
提问于 2011-04-26 16:52:09
回答 18查看 312.2K关注 0票数 580

有没有办法从git reset --hard HEAD恢复未提交的对工作目录的更改

EN

回答 18

Stack Overflow用户

回答已采纳

发布于 2011-04-26 16:55:05

一般来说,您无法取回未提交的更改。

以前暂存的更改(git add)应该可以从索引对象中恢复,因此,如果您这样做了,请使用git fsck --lost-found来定位与其相关的对象。(这会将对象写入.git/lost-found/目录;在那里,您可以使用git show <filename>查看每个文件的内容。)

如果不是,这里的答案是:看看你的备份。也许您的编辑器/集成开发环境将临时副本存储在/tmp或C:\TEMP下,诸如此类。1

代码语言:javascript
复制
git reset HEAD@{1}

这将恢复到前一个磁头

1 vim,例如,可选地存储永久撤消,eclipse IDE存储本地历史记录;这样的功能可以节省您的

票数 563
EN

Stack Overflow用户

发布于 2014-06-16 10:51:33

来自此SO的应答

代码语言:javascript
复制
$ git reflog show

4b6cf8e (HEAD -> master, origin/master, origin/HEAD) HEAD@{0}: reset: moving to origin/master
295f07d HEAD@{1}: pull: Merge made by the 'recursive' strategy.
7c49ec7 HEAD@{2}: commit: restore dependencies to the User model
fa57f59 HEAD@{3}: commit: restore dependencies to the Profile model
3431936 HEAD@{4}: commit (amend): restore admin
033f5c0 HEAD@{5}: commit: restore admin
ecd2c1d HEAD@{6}: commit: re-enable settings app

# assuming you want to get back to 7c49ec7 (restore dependencies to the User model)

$ git reset HEAD@{2}

你找回了属于你的一天!:)

票数 605
EN

Stack Overflow用户

发布于 2011-07-22 01:16:51

我今天也意外地在我的存储库上运行了git reset --hard,而今天也有未提交的更改。为了取回它,我运行了git fsck --lost-found,它将所有未引用的blob写入<path to repo>/.git/lost-found/。因为这些文件是未提交的,所以我在<path to repo>/.git/lost-found/other目录中找到了它们。在那里,我可以使用git show <filename>查看未提交的文件,复制blobs并重命名它们。

注意:仅当您添加了要保存到索引的文件(使用git add .)时,这才有效。如果这些文件不在索引中,它们就会丢失。

票数 339
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5788037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档