Reputation: 3288
I am using a git repository to deliver .jar
files to a client. If I don't delete the old commits, the repository size gets bigger and eventually, Bitbucket disables any new commits. This is how I have been delivering the files:
git reset --hard HEAD~
git push -f origin some-branch
git commit -m "Some message"
git push origin some-branch
Basically, the last commit always contains only the .jar
files, I delete it, force push to delete the commit from the remote branch, commit and push the new jars. I have recently switched to this, only to notice it has no effect on repository size (it keeps growing):
git reset --hard HEAD~
git commit -m "Some message"
git push -f origin some-branch
I thought this should have been equal to the previous method. It is not. Why?
Upvotes: 1
Views: 1284
Reputation: 588
A better answer imho is: don't use a git repo to deliver build artefacts.
Bitbucket and other git services are not file hosting services. Git is designed for tracking changes to source code, so using it to distribute large binary files is not going to end well.
There are many other options available for sharing large binary files, e.g. Google Drive.
Upvotes: 1
Reputation: 1117
When you use git push -f
the last commit is no longer referenced, but is not deleted. Eventually git will garbage collect orphaned data to save some space.
If you use Bitbucket Cloud, you can contact Support to run a git gc
to free some space.
Bitbucket documentation provide advices to reduce repository size : https://confluence.atlassian.com/bitbucket/reduce-repository-size-321848262.html
Upvotes: 3