J'ai un superprojet git qui fait référence à plusieurs sous-modules et j'essaye de verrouiller un flux de travail pour le reste des membres de mon projet.
Pour cette question, disons que mon superprojet est appelé supery
et que le sous-module est appelé subby
. (Ensuite, c'est une simplification de ce que j'essaie de faire ... Je n'utilise pas réellement les branches pour les versions, mais j'ai pensé que ce serait plus facile de poser une question.)
Ma branche principale de supery
a la balise v1.0
du projet git subby
référencée en tant que sous-module. La branche de supery
appelé one.one
et a changé la référence du sous-module pour pointer vers la balise v1.1
de subby
.
Je peux travailler dans chacune de ces branches sans accroc, mais si j'essaie de mettre à jour la one.one
branche avec des modifications de la master
branche, je reçois des conflits et je ne sais pas comment les résoudre.
Fondamentalement, après avoir exécuté un git pull . master
certain temps dans la subby
branche, il semble que cela crée des sous-modules supplémentaires.
Avant le pull / merge, j'obtiens la réponse souhaitée git submodule
de la one.one
branche:
$ git checkout master
$ git submodule
qw3rty...321e subby (v1.0)
$ git checkout one.one
$ git submodule
asdfgh...456d subby (v1.1)
Mais après l'extraction, il ajoute des sous-modules supplémentaires lorsque je lance git submodule
:
$ git pull . master
Auto-merged schema
CONFLICT (submodule): Merge conflict in subby - needs qu3rty...321e
Automatic merge failed; fix conflicts and then commit the results.
$ git submodule
qw3rty...321e subby (v1.0)
asdfgh...456d subby (v1.1)
zxcvbn...7890 subby (v1.1~1)
Comment supprimer / ignorer les références de sous-modules indésirables et valider mes conflits et modifications? Ou y a-t-il un paramètre que je peux utiliser avec mon original git pull
qui ignorera mes sous-modules?