我正在尝试释放服务器硬盘上的内存空间。我有大量的存储库,并希望从存储库中删除许多提交。所以我一直试图用git rebase -i~HEAD4来做,但我无法更新远程仓库。
如何从origin master中删除一些comits?
提前致谢 最好
答案 0 :(得分:2)
如果您确定自己在做什么,可以试试:
git push --force
为了在远程仓库上重写SHA1的历史记录。
如果远程 repo明确配置为拒绝非快进合并或删除(如本blog post中所述),则无效:
git config receive.denyNonFastforwards true
git config receive.denyDeletes true
您需要在EC2实例上进行连接才能更改这些内容,只是为了能够强制推送(然后恢复配置)。
正如Michaël Witrant below所述:
在垃圾收集器运行之前,这可能实际上不会释放磁盘空间 您应该在服务器上运行
git gc --aggressive
(或git gc --aggressive --prune=now
如果它是非裸存储库)