2017-09-19 2 views
0

Est-il possible de créer un sous-module git qui reflétera toujours le HEAD de la branche distante? Je ne veux pas avoir à mettre à jour manuellement la référence à un commit. Quand je clone mon repo parent, je veux obtenir le HEAD de la branche que le sous-module suit. S'il y a un changement dans le sous-module, mais aucun changement dans le repo parent, je veux un git pull pour mettre à jour le sous-module.git: configure le sous-module pour le suivi automatique du dépôt distant

Est-ce possible?

+0

double possible de [sous-modules Git: Spécifiez une branche/tag] (https://stackoverflow.com/questions/1777854/git-submodules-specify-a-branch -marque) – phd

Répondre

1

Ce n'est pas possible: le référentiel parent stocke l'ID de validation du sous-module. Cela garantit que tous ceux qui extraient une révision particulière du référentiel parent obtiennent la même version du sous-module; l'alternative serait désordonnée (et si le sous-module était mis à jour de sorte qu'il n'était plus compatible avec le référentiel parent?).

Si vous devez le faire régulièrement, vous pouvez l'envelopper dans un script:

#!/bin/sh 

submodule=$1 

(cd $submodule && git checkout master && git pull) 
git add -u $submodule 
git commit -m "updated submodule $submodule" 

Nom quelque chose comme « git-update-sous-module » et placez-le dans votre $PATH, puis mettre à jour un sous-module dans le répertoire foo vous pouvez exécuter:

git update-submodule foo