如何完全删除合并的拉取请求?

All*_*lan 2 git merge github pull-request

我在GitHub上合并了一个pull请求.但是,这是一个错误,我想撤消合并,它的提交,最重要的是,从历史记录中删除这些提交引入的所有文件.

我用另一个恢复提交并且它可以工作,但文件仍然在提交历史中(它们很大)如果提交本身消失将会很好.

我试图过滤分支删除文件,但它似乎没有缩小存储库大小(并且提交仍然存在).

我该怎么办?

Kal*_*kki 5

删除合并和提交

git reset --hard <sha1>
Run Code Online (Sandbox Code Playgroud)

正如@ knittl所描述的那样.但是,在删除关联的悬空对象之前,您不会看到存储库大小发生任何变化.您还需要使reflog过期,以保持对这些对象的引用,例如

git reflog expire --expire-unreachable=now --all
git prune
git repack -a -d
Run Code Online (Sandbox Code Playgroud)