Actualización de submódulo Git sobrescrita
Estoy trabajando en un proyecto git con varias personas y hemos incluido una biblioteca externa como submódulo git. Compartimos un control remoto común desde el cual empujamos y tiramos regularmente.
Desde que agregamos este submódulo por primera vez, hubo algunos cambios, así que hice ungit submodule update --remote
para actualizarlo a la versión más nueva. Eso funcionó para mí y lo envié a nuestro control remoto compartido. El archivo en la ubicación del submódulo donde se almacena la referencia a la confirmación ha cambiado:
-Subproject commit <old-commit-hash>
+Subproject commit <new-commit-hash>
Cuando mis colegas están sacando cambios de nuestro control remoto compartido, también reciben el submódulo cambiado, sin embargo, esto parece ser diferente de un cambio en un archivo normal, ya que no sobrescribe la versión anterior (lo que esperaría), pero parece como cambio cuando correngit status
:
Changes not staged for commit:,
modified: src/submodule (new commits)
Entonces el archivo debajo cambió (a la nueva revisión que introduje), pero de alguna manera git piensa que elversión local de mi colega es más nuevo. Sin embargo, este es en realidad el anterior, apuntando a la revisión anterior que mis colegas aún tienen.
Ahora, me gustan mis colegas, pero a veces realmente no prestan atención y todo lo que hacen esgit add .
ogit commit -a
que incluyetodas cambios y, por supuesto, sobrescribe los cambios en el submódulo con la referencia al antiguo compromiso del submódulo.
¿Hay alguna manera de hacer cumplir esta actualización de submódulo para todas las personas que extraen de este control remoto? ¿Se puede tratar este archivo de referencia de submódulo como un archivo normal que se actualiza normalmente? ¿O tengo que decirles a mis colegas que presten más atención y hagan ungit submodule update
¿de vez en cuando?
Espero que mi pregunta sea clara. Si no, por favor pregunte y trataré de aclarar.