tag - ¿Qué causa los conflictos de submódulos en git, y cómo deberían resolverse?
git tag remove (2)
Su submódulo local y el submódulo remoto han divergido.
git checkout --theirs submodulename
o para tu versión:
git checkout --ours submodulename
y luego confirmar los cambios con git add y confirmar los cambios.
Nota: Su shell puede agregar una barra inclinada al nombre del submódulo si completa la pestaña, ya que también es un subdirectorio. Si es así, debes eliminarlo o obtendrás:
error: pathspec ''submodulename/'' did not match any file(s) known to git.
Estamos usando submódulos y somos nuevos en git.
A menudo vemos conflictos de fusión para los submódulos, ningún archivo está en conflicto, solo el submódulo. Hay múltiples versiones enumeradas en la salida del git submodule summary
. Los resolvemos ejecutando git add <submodule>
en el superproyecto.
Pero hoy tuvimos un desarrollador que perdió un compromiso del submódulo cuando resolvió el conflicto de esta manera.
¿Ejecuta un git add para elegir la versión remota? ¿No deberían fusionarse los contenidos del submódulo? Si ella hizo cambios en el submódulo y los cometió (lo cual veo), ¿por qué desaparecería ese compromiso después de que ejecutó la extracción y resolvió el conflicto?
Tanto los conflictos de archivos como los conflictos de submódulos ocurren cuando la bifurcación actual y la bifurcación en la que se desea fusionar divergen .
Simplemente significa que existe una situación ambigua: legítimamente puede querer "ganar" en cualquier caso dado. Por lo tanto, si bien puede parecer "molesto", simplemente resaltan sus abundantes opciones para especificar lo que desea (y debe especificar lo que desea). (Y, todo lo que los programadores hacen todos los días es simplemente para especificar detalles).
Parece que el git-add-the-submodule-on-the-superproject debería haber funcionado. Sin embargo, también tenía la opción de realizar git-checkout-on-the-superproject de inmediato. Esto se menciona en este enlace (resolver conflictos de submódulos), que habla de la diferencia entre conflictos de archivos y conflictos de módulos de suma , y cómo resolverlos: