Comment créer et gérer des modèles GitHub pour créer facilement de nouveaux projets
Souvent, lorsque vous créez un nouveau projet, vous ne partez pas de zéro. La réutilisation de la structure du code, du passe-partout et d’autres fonctionnalités existantes peut vous faire économiser des heures de développement en effectuant des configurations répétées. Cette fonctionnalité est intégrée directement dans GitHub, ce qui rend les modèles faciles à utiliser et à entretenir.
Sommaire
Modèles de référentiel : la meilleure fonctionnalité cachée de GitHub
Les modèles GitHub sont incroyablement utiles pour démarrer de nouveaux projets, en particulier si vous créez constamment de nouveaux référentiels en utilisant le même langage, les mêmes frameworks et la même structure de projet.
Par exemple, quelqu’un qui crée des mods ou des plugins Minecraft pour un logiciel existant utilisera à chaque fois le même projet Java et Gradle, et pourrait créer des dizaines de plugins. Quelqu’un qui travaille beaucoup avec les API Web ASP.NET peut créer un nouveau projet pour chaque projet nécessitant un backend.
L’utilisation du même modèle accélère considérablement le développement et peut même être utilisé pour stocker du code partagé pour des projets. Par exemple, supposons que vous ayez une petite classe « CodeUtilities » dans votre base de code qui contient du code couramment réutilisé. Stocker ceci sur le modèle en tant que copie définitive de ce fichier aurait du sens s’il est souvent réutilisé.
Les modèles peuvent même être rendus publics sur GitHub, bien qu’ils ne soient étonnamment pas couramment utilisés. Vous ne savez peut-être même pas qu’il existe si vous n’avez pas rencontré un référentiel qui n’a pas le bouton « Utiliser ce modèle » qui vous permet de créer un nouveau référentiel à partir de celui-ci :
L’utilisation du modèle est simple : il vous suffit de donner un nouveau nom à votre référentiel et de sélectionner public ou privé. Cependant, il existe également l’option « inclure toutes les branches », qui copie tout, pas seulement la branche principale. Ceci est désactivé par défaut, alors assurez-vous de l’activer si vous en avez besoin.
Vous pouvez également accéder à tous les modèles que vous avez marqués (ou que vous possédez) lors de la création d’un nouveau référentiel :
Bien sûr, vous pouvez toujours cloner manuellement un référentiel, supprimer le code dont vous n’avez pas besoin, créer un nouveau référentiel GitHub pour le nouveau projet et mettre à jour la télécommande Git vers le nouveau référentiel. Mais les modèles GitHub automatisent tout cela en un seul clic, et ils sont vraiment simples à créer.
Création d’un modèle de référentiel
La création d’un modèle à partir d’un référentiel existant est assez simple. L’option n’est pas disponible lorsque vous la créez pour la première fois, mais elle peut être activée et désactivée à volonté.
Accédez aux paramètres de votre référentiel et sous l’onglet « Général », cochez la case « Dépôt de modèles »:
C’est ça. Votre référentiel est maintenant en mode modèle. Vous verrez le bouton vert « Code » se transformer en bouton « Utiliser ce modèle », bien que le bouton de code soit toujours là si vous souhaitez le cloner manuellement.
Bien sûr, si vous créez ceci à partir d’un référentiel existant avec de nombreuses fonctionnalités, vous souhaiterez peut-être créer à la place une nouvelle « copie de modèle ». Ensuite, vous pouvez supprimer toute la logique métier indésirable et ne conserver que la base de code simplifiée.
Mise à jour des modèles
Une fois que vous avez créé un référentiel à l’aide d’un modèle, il sera déconnecté de ce modèle et connecté au nouveau référentiel. Cependant, il y a quelques avantages à rajouter l’URL du modèle en tant que télécommande secondaire et à utiliser votre projet avec plusieurs référentiels distants.
Si vous apportez une modification au modèle, elle ne sera pas transmise à tous les clones de ce modèle. Vous pouvez cependant mettre à jour manuellement les clones en ajoutant le modèle en tant que télécommande et en extrayant la télécommande du modèle.
git remote add template [template_url]
Ensuite, récupérez toutes les modifications pour récupérer les modifications à distance du modèle :
git fetch --all
Ensuite, vous pouvez utiliser git merge
avec le --allow-unrelated-histories
drapeau pour extraire les modifications de la branche principale du modèle :
git merge template/main --allow-unrelated-histories
Gardez cependant à l’esprit que si votre projet cloné s’écarte trop du modèle, vous pouvez rencontrer des conflits de fusion, de la même manière que la fusion des modifications en amont peut également causer des problèmes. Vous devrez les résoudre manuellement.