我的git历史记录如下:
| -> X
|
| -> X | -> X
| |
| -> X | -> X | -> X
| | |
C -> C -> C -> C -> C -> C -> C -> HEAD
| |
| -> X | -> X
|
| -> X
|
| -> X
这种情况发生在强制推送到以前的提交时,我认为这破坏了强制推送以摆脱意外提交的敏感信息的目的,因为任何拥有哈希的人仍然可以看到所有更改。
如何在本地和远程上游(github)上永久删除旧的X提交?
我设法使用git fsck --unreachable --no-reflog
和git reflog expire --expire=now --expire-unreachable=now --all
清除了git gc --prune=now --aggressive
中显示的内容,但是我知道还有更多未提交的内容可以在github中访问,我知道了添加书签以进行测试(这实际上可能是我很久以前删除的不存在的分支,但即使在这种情况下,我的问题仍然存在)。
并且github上仍然存在刚刚过期/已删除的提交,我无法强制推送。那么如何强制删除可以使用修剪的哈希访问的远程文件?
我知道有很多类似的问题,但是我似乎找不到一个完全相同的问题,或者足够接近地为自己找出答案。