We have a number of git
repositories which have grown to an unmanageable size due to the historical inclusion of binary test files and java .jar
fi
No, that is not possible – You will have to rewrite history. But here are some pointers for that:
git filter-branch
.You do not need to clone again! Just run these commands instead of git pull
and you will be fine (replace origin
and master
with your remote and branch):
git fetch origin
git reset --hard origin/master
But note that unlike git pull
, you will loose all the local changes that are not pushed to the server yet.
git pull
, git merge
and git rebase
(also as git rebase --onto
) do. Then give everybody involved a quick training on how to handle this rewrite situation (5-10 mins should be enough, the basic dos and don’ts).git filter-branch
does not cause any harm in itself, but causes a lot of standard workflows to cause harm. If people don’t act accordingly and merge old history, you might just have to rewrite history again if you don’t notice soon enough.