所以我犯了一个错误并将一些敏感信息推送给github。
在意识到我的错误后,我删除了信息,重新提交并再次推送。
然后将其从git commit history中删除,我使用git rebase
重写了我的提交历史记录,并将其推送到远程。
现在我有一个问题,是否有任何方法可以从.git
文件夹中提取数据?请记住,远程存储库是公开的。
答案 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