删除历史Git提交,因此它不会出现在" git log -p"

时间:2016-08-11 20:00:24

标签: git

有一些敏感信息在一个月前提交到存储库,我想完全删除任何痕迹。

我擅长使用git rebase并且知道我可以使用它来更改提交,而像How to delete a 'git commit' from LOG, like it had never existed这样的答案会显示如何使用git rebase删除提交。< / p>

然而,使用

仍然可以找到违规提交的预先重新设定的哈希值
git log -p $BAD_SHA

因此,即使提交不再出现在git log下,使用上述命令,即使已经删除了敏感信息,仍然可以看到敏感信息&#34;使用rebase。

有没有办法在重新定位后基本上彻底删除SHA,以便它不再显示使用git log -p $BAD_SHA

附录:我在重新定位后尝试git gc --prune=all --aggressive,但这并没有解决问题。在本地或远程存储库上没有仍然引用我想要删除的错误哈希的分支。

2 个答案:

答案 0 :(得分:1)

如果在任何现有分支上都无法查看提交,则垃圾回收应该处理它。

git gc --prune=all

答案 1 :(得分:0)

事实证明,在使用git gc --prune=all --aggressive执行垃圾收集后,我还需要在本地完全删除存储库,然后重新克隆它。现在违规提交没有出现在git log -p $BAD_SHA