Salve tags e branches com git filter-branch

Se você quiser executar git filter-branch e salvar refs, você deve adicionar –tag-name-filter ‘cat’ ao seu comando.

Por exemplo:

Eu substituo no repositório (do arquivo .gitmodules) git: //some.host/+some/group/repo.git por git: //some.host/group/repo.git e quero salvar as tags.

Meu comando assim:

git filter-branch --tag-name-filter 'cat' --tree-filter '
if [ -f .gitmodules ];

then

cat .gitmodules | sed -e "s/+[a-zA-Z]*///g" >> .tmpgitmodules && mv .tmpgitmodules .gitmodules;

else

echo "";

fi'
-- --all

Depois de correr, salvo todos os refs. Eles foram atualizados do antigo para o novo sha.