【问题标题】:Restore files from git从 git 恢复文件
【发布时间】:2016-12-15 00:58:29
【问题描述】:

我在一个新的项目上工作。我将所有文件添加到本地 git-repository

git add .

但我没有提交。然后我不小心重置了 git

git reset --hard

如何恢复我的文件?我希望,那个原子保留了文件,但也保留了那些不再打开的文件。没关系,那个 atom 会关闭我所有的文件。

【问题讨论】:

  • Then i accidently resetet the git ... 偶然输入git reset --hard 似乎不太可能。在任何情况下,您的更改都会从工作目录和索引中消失,因此如果您的 IDE 中没有备份,那么您可能会不走运。

标签: git file atom-editor restore


【解决方案1】:

当您git add 一个文件时,git 将其作为对象存储在您的存储库中(在.git 目录中)。您的文件可能仍然存在。另一方面,通过运行git reset --hard 命令,您丢失了有关文件names 的任何信息。

你可以通过运行看到对象本身:

find .git/objects -type f

这会产生类似的东西:

.git/objects/67/6e8ff99e42b61f96bb0107fa1dff59594eba07
.git/objects/7c/45d8f7d987c584a8d61a8d75431ddd4f1ba52f

您可以使用git cat-file 命令查看这些对象的内容,如下所示:

git cat-file -p 7c45d8f7d987c584a8d61a8d75431ddd4f1ba52f

注意,object id 是第一级目录中的两个字符后跟文件名的所有字符的连接。

因此,编写一个可以恢复所有文件的内容的脚本相当简单,但事后您必须手动重命名它们。

【讨论】:

  • 如果它们有许多不同的文件类型怎么办?我怎样才能恢复它们?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-12
  • 2011-09-26
  • 2019-07-21
  • 2012-06-09
  • 2020-05-28
  • 1970-01-01
  • 2019-03-09
相关资源
最近更新 更多