Problema
Temos um branch em que adicionamos alguns submodules e precisamos de mudar de branch, seja para fazer merge, seja para trabalhar noutra feature.
Ao tentarmos fazer git checkout nome-do-branch
git checkout nome-do-branch
, o git indica que temos ficheiros por enviar, apesar do branch atual estar up to date.
Solução
No caso de apenas precisarem de alterar o branch atual basta:
- Remover todos os ficheiros existentes na pasta do submodule(s)
rm -r caminho/para/a/pasta
rm -r caminho/para/a/pasta
- Alterar o branch
git checkout nome-do-branch
git checkout nome-do-branch
Caso seja preciso fazer merge devem de:
- Remover todos os ficheiros existentes na pasta do submodule(s)
rm -r caminho/para/a/pasta
rm -r caminho/para/a/pasta
- Alterar o branch
git checkout nome-do-branch
git checkout nome-do-branch
- Fazer o merge
git merge branch-anterior
git merge branch-anterior
- Adicionar os ficheiros dos submodules
git submodule update --init --recursive
git submodule update --init --recursive
- Verificar que tudo funciona
- Enviar para upstream
git push
git push
Continue work as always 😁