从远程存储库中删除一些提交,假设我是唯一一个从事它的人

时间:2013-05-04 20:30:02

标签: git rebase

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

如何从origin master中删除一些comits?

提前致谢 最好

1 个答案:

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