我正在使用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
我认为这应该与以前的方法相同。它不是。为什么?
答案 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云端硬盘。