En parcourant le didacticiel SubModule , 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 qu'il pointe 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 changé l'URL, dois-je supprimer le dossier boto localement et le retirer?
git
git-submodules
ripper234
la source
la source
git subtree
Réponses:
J'ai bien peur que l'URL des sous-modules pointe toujours vers le référentiel - vous ne pouvez pas spécifier que vous voulez uniquement un sous-dossier d'un référentiel, de la même manière que git ne supporte pas les "clones étroits" en général.
Si vous ne pouvez pas vivre avec tout le référentiel en tant que sous-module, vous pouvez toujours créer un nouveau référentiel cloné à partir de boto, puis configurer une tâche cron pour:
git fetch
ce référentiel dans un répertoiregit filter-branch
de mettre à jour une branche où le sous-répertoire est au niveau supérieur.la source
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 obtenez tout .
Donc, 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.
la source
ln -s
comme sous Linux)Ce que vous voulez faire, c'est créer une branche dans le sous-module, 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 augmenter vos modifications, vous devez d'abord pouvoir effectuer la fusion arrière. Git saura que vous avez déplacé les fichiers et effectué la fusion avec succès.
J'espère que cela t'aides.
la source