2

我正在尝试释放服务器硬盘上的内存空间。我有大量的存储库,并想从存储库中删除许多提交。所以我一直在尝试使用 git rebase -i ~HEAD4 来做到这一点,但我无法更新远程仓库。

我应该如何继续从 origin master 中删除一些提交?

在此先感谢

4

1 回答 1

2

如果你确定你在做什么,你可以尝试:

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如果它是非裸存储库)

于 2013-05-04T20:46:06.227 回答