有没有办法从git reset --hard HEAD恢复未提交的对工作目录的更改
发布于 2011-04-26 16:55:05
一般来说,您无法取回未提交的更改。
以前暂存的更改(git add)应该可以从索引对象中恢复,因此,如果您这样做了,请使用git fsck --lost-found来定位与其相关的对象。(这会将对象写入.git/lost-found/目录;在那里,您可以使用git show <filename>查看每个文件的内容。)
如果不是,这里的答案是:看看你的备份。也许您的编辑器/集成开发环境将临时副本存储在/tmp或C:\TEMP下,诸如此类。1
git reset HEAD@{1}这将恢复到前一个磁头
1 vim,例如,可选地存储永久撤消,eclipse IDE存储本地历史记录;这样的功能可以节省您的
发布于 2014-06-16 10:51:33
来自此SO的应答
$ 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}你找回了属于你的一天!:)
发布于 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 .)时,这才有效。如果这些文件不在索引中,它们就会丢失。
https://stackoverflow.com/questions/5788037
复制相似问题