似乎git gc --aggressive
确实清理了我的回购,但当我做git push
时,一切都已经是最新的。有没有办法清理服务器?
答案 0 :(得分:17)
我知道Github会定期运行git gc,因为Github支持在this thread中提及。
我不知道你是否可以自己强迫它 我没有在Github hooks中看到这样的服务。
答案 1 :(得分:10)
我相信推送您的更改只会添加新提交(必要时可以到达您正在推送的分支机构);它不会删除它们。这由this github support page on deleting sensitive data证实:
请注意,强制推送不会清除远程存储库上的提交,它只是引入新的提交并将分支指针移动到指向它们。如果您担心用户直接通过SHA1访问错误提交,则必须删除存储库并重新创建它。
因此,如果您不能等待GitHub的定期gc,那么您必须重新创建。
答案 2 :(得分:6)
您还必须在服务器端运行相同的命令。大多数人只是建立一个cron工作或类似的工作,定期做这种家务。