.git文件夹是否包含有关已删除提交的信息?

时间:2016-02-22 18:42:02

标签: git github

所以我犯了一个错误并将一些敏感信息推送给github。

在意识到我的错误后,我删除了信息,重新提交并再次推送。

然后将其从git commit history中删除,我使用git rebase重写了我的提交历史记录,并将其推送到远程。

现在我有一个问题,是否有任何方法可以从.git文件夹中提取数据?请记住,远程存储库是公开的。

2 个答案:

答案 0 :(得分:3)

每个提交都存储在git存储库中,甚至被删除。您可以通过以下方式查看它们:

git reflog show

然后,您可以使用此reflog命令签出提交。 请参阅此文档:https://git-scm.com/docs/git-reflog

但是,git gc可以永久删除未引用的提交/文件。

答案 1 :(得分:0)

简单的答案是肯定的。您可以检索存储在.git文件夹下的任何信息。

阅读有关如何操作的详细答案:How to move HEAD back to a previous location? (Detached head)

一般 :只要提交存储在.git文件夹中,就可以通过不同的方式“恢复”。如果你想“删除”,那么你必须从.git文件夹中“清理”你的存储库。

如何从存储库中清除(删除)旧提交?

# remove any old data not related to any commit
git gc --aggressive --prune=now

如何查找无法访问的文件?

# Check and verify that all the objects in the repository are committed
# and print out a list of all the loose (dangling) objects
git fsck --full