Git checkout de branch com submodules

Como alterar entre branches de um repositório git, quando o branch atual tem novos submodules adicionados

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-branchgit 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/pastarm -r caminho/para/a/pasta
  • Alterar o branch git checkout nome-do-branchgit 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/pastarm -r caminho/para/a/pasta
  • Alterar o branch git checkout nome-do-branchgit checkout nome-do-branch
  • Fazer o merge git merge branch-anteriorgit merge branch-anterior
  • Adicionar os ficheiros dos submodules git submodule update --init --recursivegit submodule update --init --recursive
  • Verificar que tudo funciona
  • Enviar para upstream git pushgit push

Continue work as always 😁

programação