Parcourez le tutoriel du sous-module , j'ai créé un sous-module à partir du projet boto . Ensuite, j'ai découvert que je n'avais en fait besoin que d'un sous-ensemble de ce projet - en particulier, le dossier boto .
Je voudrais changer mon sous-module pour pointer vers ce dossier. Quand je regarde dans .gitmodules, je vois
[submodule "backup/src/boto"]
path = backup/src/boto
url = https://github.com/boto/boto.git
Quelle URL dois-je utiliser au lieu de https://github.com/boto/boto.git ? Après avoir modifié l'URL, dois-je supprimer le dossier boto localement et ré-extraire?
Je crains que l'URL des sous-modules pointe toujours juste vers le référentiel - vous ne pouvez pas spécifier que vous ne voulez qu'un sous-dossier d'un référentiel, de la même manière que git ne prend pas en charge les "clones étroits" en général.
Si vous ne pouvez pas vivre avec le référentiel entier comme sous-module, vous pouvez toujours créer un nouveau référentiel qui est cloné à partir de boto, puis configurer un travail cron pour:
git fetch
ce référentiel dans un répertoiregit filter-branch
pour mettre à jour une branche où le sous-répertoire est au niveau supérieur.Vous ne pouvez pas cloner uniquement une partie d'un référentiel. C'est parce que git traite le référentiel comme un objet entier: quand vous l'obtenez, vous l'obtenez tous.
Ainsi, la solution ici serait de récupérer le sous-module dans un autre répertoire, puis d'utiliser un lien symbolique pour atteindre votre objectif.
Ce que vous voulez faire, c'est créer une branche dans le sous-module et déplacer le dossier vers le haut et supprimer ce dont vous n'avez pas besoin. Vous pouvez ensuite gérer cette branche à la place. Si vous souhaitez pousser vos modifications, vous devriez d'abord pouvoir sauvegarder la fusion. Git saura que vous avez déplacé les fichiers et que la fusion a réussi.
J'espère que cela t'aides.