我创建了一个全新的 git 存储库,我想将它同步到已经在遥控器上的存储库。不幸的是,在将远程作为源添加之前,我向这个新的本地存储库添加了一些新文件,并且在拉取之前我忘记了提交这些新文件。因此,本地没有初始提交。结果,当我拉出这些新文件时,这些新文件被删除了。有没有办法让他们回来?
问问题
65 次
4 回答
1
如果你做了一个git add
,那么 git 已经blob
为这些文件创建了对象,但没有将它们连接到commit
DAG。您可以使用该git fsck
命令查找未连接的对象,该命令应为您提供blob
对象列表tree
。
您要查找的文件在blob
s 内,可以使用git cat-file
(IIRC,目前无法测试)转储其内容。该git fsck
命令不会显示blob
s 引用的tree
s,因为这些不是未引用的,因此如果找不到您要查找的文件,您可能需要查看一些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 回答