1

我创建了一个全新的 git 存储库,我想将它同步到已经在遥控器上的存储库。不幸的是,在将远程作为源添加之前,我向这个新的本地存储库添加了一些新文件,并且在拉取之前我忘记了提交这些新文件。因此,本地没有初始提交。结果,当我拉出这些新文件时,这些新文件被删除了。有没有办法让他们回来?

4

4 回答 4

2

由于您没有提交新文件,因此在日志中查找它们将无济于事。

剩下的是某种数据恢复软件,比如Recuva

于 2013-10-23T10:40:24.477 回答
1

如果你做了一个git add,那么 git 已经blob为这些文件创建了对象,但没有将它们连接到commitDAG。您可以使用该git fsck命令查找未连接的对象,该命令应为您提供blob对象列表tree

您要查找的文件在blobs 内,可以使用git cat-file(IIRC,目前无法测试)转储其内容。该git fsck命令不会显示blobs 引用的trees,因为这些不是未引用的,因此如果找不到您要查找的文件,您可能需要查看一些tree对象才能找到更多blob的 s。

于 2013-10-23T10:56:01.333 回答
0

使用git log,找到您要回滚到的最后一个提交,然后使用

git checkout $COMMIT_ID$

于 2013-10-23T10:38:03.240 回答
0

也许这在您的情况下无效,但如果您碰巧正在使用 eclipse 并且被删除的文件位于您的一个项目中,那么您始终可以在 eclipse 中执行“从本地历史恢复...”。这救了我几次。

于 2013-10-23T11:36:37.603 回答