为了账号安全,请及时绑定邮箱和手机立即绑定

意外地恢复为主文件,丢失了未提交的更改

意外地恢复为主文件,丢失了未提交的更改

Git
DIEA 2019-11-15 21:12:22
我已经设法犯了一个大错误(在一个星期一早晨),在Master上工作,忘记创建新分支,对文件进行更改,然后无意中将其还原到Master,失去了所有更新。我没有提交更新的文件。我丢失了所有更新还是可以找回它们?不要问我怎么做,因为每次我想起来,我都要面对自己。
查看完整描述

3 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

如果您尚未提交暂存隐藏所做的更改,则无法恢复这些更改。

编辑:恢复丢失的更改。在Mark Longair的建议上添加此内容(在评论中)。这还包括他在下面的答案中的几个SO链接(*),我发现这些链接非常有用。

  • 如果您曾经提交过一些更改而丢失了该提交(例如以分离状态提交),则可以使用来找到该提交reflog。请参阅此SO问题 *。

  • 如果您丢失了上一阶段的更改,则也可以恢复。请参阅此SO问题 *。(我自己从未使用过或尝试过)。

  • 如果你已经藏匿的变化,你也可以使用恢复popapply。(我不确定弹出/放下的隐藏存储是否也可以恢复,但未提交)。您可能会在git中发现此恢复丢弃的存储很有用。

如果有人可以建议其他任何方法,我将进一步编辑此答案以添加它们。


查看完整回答
反对 回复 2019-11-15
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

两个长镜头:一些IDE(例如Delphi)保留了编辑器历史记录。您可能在那里有追索权。
接下来,如果您的本地工作目录位于MyDocuments文件夹中,则它可能已经由Windows Home Server,Carbonite,MozyPro等自动备份了。这些通常是“设置后忘记了”。也许你忘了吗?

查看完整回答
反对 回复 2019-11-15
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

此处的关键问题是对文件进行更改后的操作。如果创建的提交包含文件的新状态,则应该能够通过查看中的最新条目git reflog,找到提交的SHA1sum并使用git branch recovered <SHA1sum>或类似内容从中创建一个新分支来找回它们。在此答案中有一个执行此操作的示例。


如果您git add对任何文件进行了登台,也应该可以将它们取回,但这是更多工作-Jakub在此答案中描述了如何执行此操作。


如果您碰巧git stash要给自己一个干净的状态,那么您当然可以像其他藏家一样将其取回。


否则,恐怕这个消息不好。


我希望事后指出这一点不会令人气愤,但只要切换回master分支,您就不需要使用任何可能会丢失数据的命令- git checkout master会告诉您您已经在master分支上,并显示所有未提交的更改。(git reset --hard考虑到^W我以这种方式丢失数据的人的频率,如果有未提交的更改,可以说是“是的,我的意思是真的”确认。)


查看完整回答
反对 回复 2019-11-15
  • 3 回答
  • 0 关注
  • 808 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信