删除提交以减小存储库大小的方法

时间:2019-06-03 08:27:04

标签: git bitbucket

我正在使用git存储库将.jar文件传送到客户端。如果我不删除旧的提交,则存储库的大小会变大,最终,Bitbucket会禁用任何新的提交。这就是我一直交付文件的方式:

git reset --hard HEAD~
git push -f origin some-branch
git commit -m "Some message"
git push origin some-branch

基本上,最后一次提交始终只包含.jar文件,我将其删除,强制推送从远程分支中删除提交,提交并推送新的jar。我最近改用此方法,只是注意到它对存储库大小没有影响(它会不断增长):

git reset --hard HEAD~
git commit -m "Some message"
git push -f origin some-branch

我认为这应该与以前的方法相同。它不是。为什么?

2 个答案:

答案 0 :(得分:2)

当您使用git push -f时,将不再引用最后的提交,但不会将其删除。最终git会垃圾收集孤立的数据以节省一些空间。

如果您使用Bitbucket Cloud,则可以联系支持部门以运行git gc释放一些空间。

Bitbucket文档提供了减小存储库大小的建议:https://confluence.atlassian.com/bitbucket/reduce-repository-size-321848262.html

答案 1 :(得分:0)

恕我直言,更好的答案是:不要使用git repo来传递构件。

Bitbucket和其他git服务不是文件托管服务。 Git旨在跟踪源代码的更改,因此使用它分发大型二进制文件并不能很好地结束。

还有许多其他选项可用于共享大型二进制文件,例如Google云端硬盘。