【问题标题】:Git checkout -- recover lost filesGit checkout——恢复丢失的文件
【发布时间】:2015-08-19 00:31:55
【问题描述】:

我不小心删除了 git 存储库上的本地文件更改。他们没有被提交,甚至没有被推送。

我做了什么: 混帐状态 (然后显示未暂存以进行提交的文件,并且我不小心通过此命令删除了名为“smdr”的整个文件夹): git checkout -- smdr

然后文件更改消失了。

我怎样才能恢复这些文件(在 git checkout -- smdr 命令之前恢复所有内容)?

【问题讨论】:

  • 如果它们没有被提交,最好的办法是检查本地文件所在计算机上的垃圾箱或回收站。如果您使用的是 Windows,则可以在文件夹的属性中恢复为“以前的版本”(如果您启用了此功能)
  • @Avantol13 当您在 cli 中删除某些内容时,您通常永远无法在垃圾箱中找到它们

标签: git local git-checkout undo


【解决方案1】:

你不能使用 Git。这些文件未提交,因此它们不在历史记录中。您刚刚在带有git checkout 的索引中获得了(不存在的)版本。

您唯一的希望是您的备份系统。

【讨论】:

  • 如果您以前隐藏(并丢弃),并且您知道内容将成为隐藏的一部分。然后尝试恢复存储。这样就可以至少部分恢复受git checkout影响的文件。
【解决方案2】:

您可以使用任何给定的选项:

Git 引用日志

输入git reflog 并签出您需要的提交,它会将您的存储库“还原”为“已删除”的提交。

Git 还原

另一个选项是使用git revert SHA-1,它将恢复您的提交。它只会撤消您的更改

Git 重置

Git reset 将检查给定 sha-1 的内容。它会将您的分支设置为与 SHA-1 相同的状态

【讨论】:

  • 但我的本地更改没有提交?我可以使用其中之一吗?
  • 不,你不能。所有这些命令都处理已提交的历史记录。
猜你喜欢
  • 2021-03-26
  • 2019-11-13
  • 2021-10-03
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-15
相关资源
最近更新 更多