Como atualizar um git repo contendo um sub-módulo?
-
07-07-2019 - |
Pergunta
Depois de algum tempo eu queria atualizar meu git repo, e então algo deu errado. O que é a maneira correta de sair desta situação?
mblsha@siruba:~/src/psi/ $ git status
iris: needs merge
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: src/common.cpp
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
#
# unmerged: iris
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# gupdate.sh
mblsha@siruba:~/src/psi/ $ git submodule status
+cf237ef8f3d9dc058dbde47e6973e6388608ce60 iris (heads/master)
+cf237ef8f3d9dc058dbde47e6973e6388608ce60 iris (heads/master)
+cf237ef8f3d9dc058dbde47e6973e6388608ce60 iris (heads/master)
mblsha@siruba:~/src/psi/ $ cd iris
mblsha@siruba:~/src/psi/iris/ $ cat .git/HEAD
cf237ef8f3d9dc058dbde47e6973e6388608ce60
Solução
Quando se trata de submódulos Git, quase todo o problema que você encontrar pode ser resolvido por:
1. deleting the submodule (rm -r iris)
2. recreating it again (git submodule update)
Obviamente, se você tiver feito alterações locais para o seu submodule isso irá eliminar de forma permanente, por isso, se você tiver alterações locais certifique-se de ter empurrado-los primeiro.
Outras dicas
Eu postei um semelhante questão aqui em stackoverflow e acabou respondendo-lo eu mesmo, mas eu achei que usando git reset HEAD iris
trabalhou para o meu problema com os conflitos submódulo.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow