J'ai récemment commencé à développer une nouvelle bibliothèque, et utiliser Git pour le contrôle de révision. J'ai décidé de suivre l'article de blog extrêmement populaire A successful Git branching model pour gérer les branchements. Il est temps pour moi de faire ma première version, et j'aimerais avoir des conseils sur la gestion de certains ensembles de fichiers, comme je le décris ci-dessous. Sur les branches de développement de branche et d'entité, je veux tous les "fichiers de support", tels que le fichier makefile utilisé pour la compilation et le fichier readme.md utilisé par doxygen pour générer de la documentation. (Notez que ce ne sont que quelques exemples.J'ai beaucoup plus de "fichiers de soutien".)git commit ensemble différent de fichiers pour développer et maître
Le billet de blog dit aussi qu'une validation à la branche maître est une version par définition. Je veux que la version inclue tous les "fichiers binaires" (qui incluent, par exemple, les fichiers objets résultant de la compilation et les fichiers html contenant la documentation). Ces fichiers doivent être validés dans la branche master afin que les clients puissent simplement cloner à partir du référentiel avec la balise et obtenir la version requise.
Je préfère ne pas avoir les « fichiers de support » dans la version (car je ne veux pas donner aux clients des tas de fichiers, ils ne veulent pas ou ne peuvent pas utiliser). De même, je préfère ne pas avoir les «fichiers binaires» contrôlés par la version dans les branches de développement et de fonctionnalité. Ainsi, je veux commettre un ensemble de fichiers à développer, et un autre ensemble de fichiers à maîtriser. (Bien sûr, il y a aussi un ensemble de fichiers qui sont «communs» aux deux branches.) Cependant, je suis sceptique quant à la désynchronisation du maître et au développement des branches comme cela vient d'être décrit.
Le modèle que je propose est-il bon? Si oui, comment devrais-je faire face à l'engagement de différents fichiers à développer et à maîtriser? Y a-t-il une meilleure façon de gérer cette situation?
Je suis passé par chacun des commentaires sur cette page de blog, des recherches sur Internet, et également recherché ici sur StackOverflow. A partir des résultats de recherche, ce post GIT repositories with some different files semble être le seul à être proche de ma question. Aucun de ceux-ci m'a aidé à comprendre la solution.
Merci pour votre réponse. Permettez-moi de clarifier un point. Les "fichiers de support" _are_ sous le contrôle de version. Je veux seulement qu'ils ne soient pas engagés dans la branche principale. Est-ce que votre suggestion que le "package package" devrait sélectionner de manière sélective des fichiers spécifiques du maître du côté du client (c'est-à-dire, passer tous les "fichiers de support")? Cela pourrait être réalisable, je voulais juste clarifier si c'est ce que vous vouliez dire. –
C'est proche. Je ne suis pas au courant d'une manière sélective checkout fichiers spécifiques avec git. Mais l'idée est bonne, vous filtrez les fichiers indésirables du côté client. Un exemple de mon monde de développement web est de créer un script Capistrano qui compile les fichiers script scss et café localement, puis scp les envoie au serveur. De cette façon, vous divorcez votre repo des besoins du client et utilisez votre repo pour les besoins de développement. J'espère que cela vous indique la bonne direction. –