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