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

.git文件夹是否包含有关已删除提交的信息?,git,github,Git,Github,所以我犯了一个错误,将一些敏感的非公开信息推送到github 在意识到我的错误后,我删除了信息,重新提交并再次推送 然后,为了将其从git提交历史中删除,我使用git rebase重写了我的提交历史,并强制将其推送到远程 现在我有一个问题,是否有任何方法可以从.git文件夹中提取数据?请记住,远程存储库是公共的。每次提交都存储在git存储库中,甚至被删除。您可以通过以下方式查看它们: git reflog show 然后可以使用此reflog命令签出提交。 请参阅本文档: 但是,git gc可

所以我犯了一个错误,将一些敏感的非公开信息推送到github

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

然后,为了将其从git提交历史中删除,我使用
git rebase
重写了我的提交历史,并强制将其推送到远程


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

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

git reflog show
然后可以使用此
reflog
命令签出提交。 请参阅本文档:


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

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

阅读以下关于如何操作的详细答案:


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


如何从存储库中清除(删除)旧提交?
如何查找无法访问的文件? 请参阅Rebase决不会“删除”提交。这可能会使它们成为“孤儿”,因为您的头或分支无法访问它们,但如果它们没有被垃圾收集(通常在30天后发生),则可以使用reflog随时检索它们
# 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