我创建了一个全新的git repo,我想要同步到遥控器上的一个。不幸的是,在我添加遥控器作为原点之前,我在这个新的本地仓库中添加了一些新文件,而且在我拉动之前我忘了提交这些新文件。因此,本地没有初始提交。结果,当我拉动时,这些新文件被删除了。无论如何都要让他们回来?
答案 0 :(得分:2)
由于您没有提交新文件,因此在日志中查找它们将无济于事。
剩下的是某种data recovery software,例如Recuva。
答案 1 :(得分:1)
如果你做了git add
,那么git已经为这些文件创建了blob
个对象,但没有将它们连接到commit
DAG。您可以使用git fsck
命令查找未连接的对象,该命令应该为您提供blob
和tree
个对象的列表。
您要查找的文件位于blob
内,其内容可以使用git cat-file
转储(IIRC,目前无法测试)。 git fsck
命令不会显示blob
引用的tree
,因为这些不是未引用的,所以如果找不到您要查找的文件,您可能需要查看一些tree
个对象中找到更多blob
s。
答案 2 :(得分:0)
使用git log
,找到您要回滚的最后一次提交,然后使用
git checkout $COMMIT_ID$
答案 3 :(得分:0)
也许这在你的情况下是无效的但是如果你碰巧使用eclipse并且删除的文件位于你的一个项目中,那么你总是可以做一个"从本地历史恢复...... "在日食。这节省了我几次。