【发布时间】:2018-10-17 19:50:49
【问题描述】:
在这种情况下恢复文件的“最佳实践”推荐方法是什么:
用户在其 Linux 工作区中修改文件。她运行“git add”并将它们分阶段。她没有承诺。时间流逝。她不小心使用 '/bin/rm' (not 'git rm') 删除了所有修改过的文件。
现在,“git status”将它们报告为“已删除”(正确)。它建议为每个运行“git reset HEAD file”和“git checkout -- file”(不正确)。这导致每个人的最新 (HEAD) 版本都留在她的工作区中,而不是那些包含她分阶段更改的版本。除了运行“git fsck”并尝试解析各种 SHA 引用之外,用户现在应该做什么来恢复她最初上演的更改?
【问题讨论】:
-
谢谢!是的,'git-recover' 脚本/博客有一些非常有用的信息,所以可以很好地解决它。不过,我仍然担心“git status”建议首先会导致悬空对象。
-
请记住,
git status建议是针对“我如何取回我的文件?”这个问题,而不是“我如何获得我的已修改且尚未签入的文件返回?”rm命令导致悬空对象,而不是git reset或git checkout。 -
啊……好吧,明白了。是的,这更有意义。我想相信 git 按照这个建议做了正确的事:-)
标签: git