6 votes

Mise à jour de la nouvelle version d'un sous-module Git

J'avais forké un MapBox-ios-sdk et j'y ai apporté quelques modifications. Une nouvelle version du sdk est disponible ici et j'ai fusionné mes changements dans mon fork. MapBox-ios-sdk incorpore également SMCalloutView qui est un sous-module dans MapBox-ios-sdk. Cependant la version du sdk officiel utilise une version plus récente et mise à jour de SMCalloutView qui n'est pas dans mon fork.

Comment faire pour qu'il se mette à jour ?

Je mets à jour mon sdk en suivant les instructions de aquí . Cependant, cela ne met pas à jour SMCalloutView. J'ai également essayé git submodule update --recursive au niveau du MapBox-ios-sdk et rien ne se passe. Il s'avère que c'est parce que SMCallOutView est en "no branch". Pourquoi est-il dans "no branch" ? Comment faire sortir tous les sous-modules de l'état "no branch" ? S'il est en "no branch", je ne saurai jamais quel sous-module ou sous-module du sous-module (ou même plus imbriqué) a besoin d'être mis à jour.

20voto

VonC Points 414372

Con git 1.8.2+ (mars 2013), vous pouvez définir un sous-module qui reflétera le dernier commit d'une branche donnée.
Voir " git submodule tracking latest ".

Cela signifie qu'il suffirait de mettre à jour un sous-module avec la dernière version d'une branche :

# --remote will also fetch and ensure that
# the latest commit from the branch is used
git submodule update --remote

Voir git repo commit 06b1ab pour en savoir plus sur la --remote option.


Pour résumer :

  • Pour un nouveau sous-module (qui doit suivre une branche) :

    git submodule add -b [branch] [URL] [DirectoryName]
  • Pour un sous-module existant dont vous souhaitez qu'il suive une branche :
    Voir aussi git repo commit b92892 pour transformer un sous-module git en un sous-module qui suit une branche.
    Tout ce que vous avez à faire, c'est.. :

    git config -f .gitmodules submodule.<path>.branch <branch>

    Voir plus sur " Sous-modules Git : Spécifier une branche/étiquette "

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X