Problème lors de l'installation, passez directement à la ligne pour la question.Masquage d'un sous-répertoire git sous-module jusqu'à l'appel d'initialisation sous-module
Je travaille sur projectA qui a son propre repo git. Ce projectA a quelques outils optionnels dans projectB qui est son propre repo séparé. D'après ce que je comprends, cela ressemble à une situation de sous-module git, faisant de projectB un sous-module de projectA. Pour configurer ceci, utiliser git submodule add projectB
. Cela crée un sous-répertoire dans projectA qui agit comme un lien vers projectB, avec cette information sauvegardée dans .gitmodule
. Vous devez valider à la fois ce fichier et le "sous-répertoire". Je peux continuer à développer sur projectA sans prêter attention à projectB. Lorsque je fais des mises à jour à projectB et que je les pousse, je peux mettre à jour projectB dans projectA en utilisant git submodule update --remote
. Cela modifie le sous-répertoire projectB dans projectA, à la fois en mettant à jour les fichiers dans la version actuelle de projectB (non suivi par projectA) et le fichier de sous-répertoire lui-même (suivi par projectA). Supposons maintenant qu'un troisième utilisateur veuille projeter A et créer un projet C, mais n'a pas besoin de projetB. Ils utilisent git clone projectA
, ils obtiennent tous de projectA et le .gitmodule
et un sous-répertoire vide pour projectB. Je voudrais qu'ils obtiennent toujours .gitmodule
afin qu'ils aient l'option dans le futur, mais est-ce possible pour qu'ils n'obtiennent pas le sous-répertoire vide pour le projet B?
Ma question est-il possible de cacher le sous-répertoire pour un sous-module ProjectB dans projectA avant que l'utilisateur fait un git submodule init
>git submodule update
? J'ai peur que ce ne soit pas possible parce que ce sous-répertoire est en fait un fichier git spécial qui indique quel commit obtenir pour le projet B, que j'aurais pensé avoir été sauvegardé dans .gitmodule
. Je suis intéressé s'il y a une meilleure méthode pour ce que je veux accomplir ou n'importe quels bidouillages de git.
une solution est de faire un appel répertoire caché '.modules' où tous les sous-modules résident ('mkdir .modules; cd .modules; git submodule add projectB'). Ensuite, je vais demander aux utilisateurs de créer un lien symbolique 'ln -s .modules/projectB' dans leur répertoire de travail, en ajoutant le lien symbolique pour un fichier appelé' projectB' à '.gitignore'. L'étape supplémentaire pour ceux qui doivent faire 'git submodule init; mise à jour du sous-module git; De toute façon, les modules/projectB' ne devraient pas être un gros problème et garder le projet propre pour ceux qui ne veulent pas le sous-module. –