我正在尝试释放服务器硬盘上的内存空间。我有大量的存储库,并想从存储库中删除许多提交。所以我一直在尝试使用 git rebase -i ~HEAD4 来做到这一点,但我无法更新远程仓库。
我应该如何继续从 origin master 中删除一些提交?
在此先感谢
如果你确定你在做什么,你可以尝试:
git push --force
为了在远程 repo 上重写 SHA1 的历史记录。
如果您的远程存储库被明确配置为拒绝非快进合并或删除(如本博文中所述) ,它将不起作用:
git config receive.denyNonFastforwards true
git config receive.denyDeletes true
您需要连接 EC2 实例才能更改这些,只是为了能够强制推送(然后恢复配置)。
正如下面的Michaël Witrant 所述:
在垃圾收集器运行之前,这可能不会真正释放磁盘空间。
您应该git gc --aggressive
在服务器上运行
(或者git gc --aggressive --prune=now
如果它是非裸存储库)