J'essaie de clouer un bon système de gestion de la libération, associé à la pratique du marquage du marquage avec des numéros de version - par exemple, 1.0. Toute modification après cette étiquette sera incrémentée, comme 1.0-1, 1,0-2, etc. p>
Toutefois, si je crée une nouvelle succursale de Master pour la version 1.0, puis je passe à cette branche et étiquetez-la 1.0, le système mentionné ci-dessus fonctionne bien. Des corrections de bogues supplémentaires sur cette branche présentent comme prévu, 1.0-1, 1.0-2 P>
Cependant, tout travail sur le maître, à moins que je ne slève que le maître après la première commission après avoir effectué la branche 1.0, montrera également la même incrément: 1.0-1, 1.0-2 P>
accordé, les hachages SHA1 seront uniques, mais je finirai par avoir les mêmes révisions / incréments de la maîtrise et de la branche. P>
Y a-t-il un moyen d'éviter le maître d'être étiqueté du tout quand je viens de marquer les branches? Y a-t-il un meilleur moyen de faire cela? En ce moment, ma seule option après avoir créé une succursale 1.0 est une commission mineure en maîtrise, puis la désagréable pour 1.1-dev ou quelque chose. P>
répétez ensuite pour chaque version. P>
Toutefois, si une succursale est à nouveau étiquetée, dites-le pour la version 1.0.1, c'est-à-dire que cela semble aussi que cela marquerait également que c'est ce qui s'est passé en premier? P>
3 Réponses :
En git, vous ne marquez pas les branches. Vous marquez commet. Si vous voulez "marquer" une succursale, vous avez déjà cela: le nom de la branche. :) p>
oui, git décrit code> vous donne comme des identifiants comme 1.0-2-g1ab3183 code> mais ce ne sont pas des balises! Le marquage est effectué avec git balise code> (qui aurait deviné), et les balises créées à l'aide de git balise code> sont la base des identificateurs de validation git décrivent < / code> crée. p>
Je comprends complètement ce que les étiquettes, les branches, etc. sont et comment ils sont utilisés. Le problème est que lorsque vous ajoutez une nouvelle étiquette à une branche existante. Disons que je crée une succursale de support pour 1.0 - Master continue avec de nouvelles fonctionnalités, etc. BugFixes pour 1,0 se produit sur cette branche spécifique. Disons que je veux étiqueter cela ou re-succursale / étiquette à nouveau pour la libération 1.0.1. Si j'agite cette révision sur une succursale, mon maître commence à montrer 1,0.1-1, 1.0.1-2, lorsque je voulais seulement marquer la branche la validation survenue. Je ne veux pas de maîtriser et de branches partageant des tags comme ça.
Voulez-vous dire git décrire code> Affiche 1.0.1-1 code>, -2 code>, etc.? Parce que cela ne devrait pas être influencé par des étiquettes qui ne sont pas un ancêtre de la commission actuelle (et cela ne devrait pas être si c'est sur une autre branche et que vous vous êtes engagé dans les deux branches).
Dans Git, une balise est un alias pour une validation spécifique, pas pour une branche.
Les balises et les branches sont indépendantes. p>
Donc, si vous souhaitez vérifier une version spécifique pour faire un Rev mineur à ce sujet, vous pouvez le faire: P>
git checkout -b new_branch_name tag_name
Dans Git, vous ne pouvez pas dire que certains commis appartiennent em> à une succursale. Un commit unique peut être sur plus d'une branche; Si commettez A est l'un des ancêtres de la pointe de la succursale, nous disons que c'est sur une branche donnée. comme Bombe a déclaré en git, vous ne tagez pas les branches. Vous marquez commet. Dans la balise git est juste (annoté) du pointeur à un commit. P> Dans votre cas, je pense, quelque chose comme les suivants p> commettons-nous "X" soit le mot à valider par tag 'v1.0'. Ce commit est à la fois sur la branche "Master" et sur la branche "Maint". Si vous exécutez " Si vous souhaitez que la balise n'apparaisse que sur la branche 'MASTER', vous pouvez créer une nouvelle commission (par exemple, la mise à jour par défaut / replace Informations sur la version dans le fichier de la version git) après la ramification de la branche "Maint". Si vous marquez commet la branche 'Maint' avec par exemple. "v1.0.3" Ce serait visible uniquement de "Maint". P> hth p> p> v1.0-2-g9c116e9 code>. Si vous exécutez "Git décrivent" sur le dessus de commettre "A" ("maintien" succursale), vous obtiendriez quelque chose comme v1.0-2-g3f55e41 code> (au moins avec configuration de git-décrion par défaut). Notez que ce résultat est légèrement différent. V1.0-2-G9C116E9 CODE> signifie que nous sommes à validation avec le tri SHA-1 ID de 9C116E9 code>, 2 commettre après la balise v1.0 code> . Il n'y a pas de balise v1.0-2 code>! P>
Je suppose que je ne suis tout simplement pas assez clair. Je suis au courant de tout ce que vous et les autres a dit, mais mon problème est si je crée une nouvelle étiquette lors d'une succursale, décrivez Git sur le maître commencera à refléter cette nouvelle étiquette. Essentiellement, je pourrais vous retrouver avec deux versions 1.0-1, 1.0-2, 1.0-3 dans la branche et le maître, en réalité, ils représentent deux versions différentes qui devraient être plus similaires à 1.0-1, 1.1-Dev- 1, etc. Je pense que mon seul moyen est de simplement étiqueter le maître après avoir fait un commettre, après une branche pour une libération.
Cela ne se produirait que si le comit étiqueté est également disponible à partir de «maître» (fait partie des ancêtres de «maître»).
N'utilisez pas 1.0-1 de Git-Description; Communiqués de maintenance des balises avec 1.0.1