Comment tirer un nouveau sous-module
Essayé de chercher des réponses sur ce site et d'autres:
StackOverflow - moyen Facile de tirer plus tard de toutes les submodules
Ils ont tous l'air de vouloir en parler si vous le commandez, pas si quelqu'un d'autre, et je veux juste tirer supplémentaires dans mon projet sans avoir à les ranger ou de sauvegarde de mes modifications si j'ai besoin de supprimer le dossier.
Devrais-je supprimer le .gitmodules
fichier et/ou le sous-module des répertoires que j'ai déjà tiré vers le bas avec git clone --recursive
?
(StackOverflow - Comment git clone
, y compris submodules?)
Ces commandes ne semblent pas aider soit:
git submodule update --init --recursive
semble qu'il n'a rien fait.git submodule update --recursive
rien.git fetch --recurse-submodules
sortieFetching submodule ...
plusieurs fois.git pull --recurse-submodules
sortie la même chose, et puis il ditAlready up-to-date.
après l'extraction de l'essai. Étrange, car dans les deux cas mon submodules ont déjà été téléchargés.git clone --recursive ...
Pas encore essayé. Je me sens comme serait remplacer toutes les modifications que j'ai faites, dans le coffre ou autre.git submodule update --recursive --remote
sorti un nouveau commit SHA pour l'un des submodules.git submodule update --recursive
sorti un nouveau commit SHA pour l'un des submodules. Pourrait être le plus ancien et original de commettre niveau.git submodule status
donne les SHA, la version et les informations de nom pour chacun d'eux, bien que manquant encore de celle que je veux.git submodule foreach git pull origin master
git submodule update
ne fait rien.
J'ai été une double vérification du répertoire de la bibliothèque manuellement à chaque fois assurez-vous que le sous-module supplémentaire est apparu ou non.
Je veux éviter de faire certaines actions, à moins qu'ils ne soient pas destructeurs pour mon dépôt de l'état contenant des modifications de code, et résout mon problème, dans le cas où c'est une commande que j'ai mentionnés, mais ne s'est pas exécuté, ou quelqu'un d'autre a une autre pour essayer.
J'ai pu essayer quelques-uns de ces avec plus d'effort, mais je pense que je veux arrêter de jouer avec eux pour l'instant, et depuis je n'ai pas trouvé la réponse à cette question après avoir fait quelques recherches en ligne, peut-être de l'espoir et de l'éventuelle réponse serait d'aider les autres de toute façon.
Suis-je souffre de la con mentionné ici?
Génie logiciel - Git sous-module vs Git clone
Plus de liens:
OriginalL'auteur Pysis | 2017-05-22
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur Aaron Walerstein
Meilleure suggestion que j'ai reçu jusqu'à présent est d'exécuter cette commande:
De sorte qu'il semble être ce que l'autre contributeur aurait fait, que je le ferais de nouveau, même s'il existe déjà dans la télécommande.
Je suppose que ce n'est pas techniquement à jour le
.gitmodules
fichier à partir de la télécommande de données comme ce qui serait attendu, mais n'ai pas trouvé un moyen de le faire encore.De crédit pour l'aide va à @pandatrax.
Mise à jour
Avant d'essayer le
add
méthode, j'ai essayé 1 plus d'idée en ce qui a impliqué la copie de la.gitmodules
fichier à partir de la télécommande manuelle et de la mise à jour des commandes, mais, malheureusement, cette approche ne fonctionne pas, soit. C'est peut-être passé autrement si j'ai exécuté les commandes dans la racine, depuis que j'étais dans un sous-dossier, mais j'en doute.Ensuite, j'ai utilisé le
add
méthode, qui a téléchargé la dépendance, mais le.gitmodules
fichier ont montré des changements. Une fois que j'ai mis en place le GitHub à distance et l'a tiré d'elle après le rejet de ce fichier, le projet semble être dans un meilleur état aujourd'hui, même la synchronisation de la validation SHAs pour le module de mise à jour ou 2, puisqu'ils sont appariés, ou elle a été remplacée.OriginalL'auteur Pysis
Que vous avez à faire deux choses:
git pull
dans votre dépôt principal qui détient les submodules. Cela va ajouter la nouvelle sous-module comme un répertoire vide.git submodule update --recursive --remote
dans le dépôt principal. Cela permettra de tirer les modifications les plus récentes pour tous les submodules, y compris le nouveau.Cela fonctionne au moins en Git 2.13. Notez également que si les référentiels et les submodules sont sur GitHub, vous devez vous assurer que vous disposez des droits d'accès pour eux (si ils sont privés).
[email protected]:user/repo
. Si vous utilisezhttps://github.com/user/repo
vous n'avez pas besoin d'un accès ssh.OriginalL'auteur Fabian Fagerholm
Cela devrait fonctionner, aussi longtemps que le nouveau sous-module est dans le .gitmodules à distance
git pull --recurse-submodules
OriginalL'auteur Lekkie