web-dev-qa-db-fra.com

Ajouter un nouveau commit à la balise Git existante

J'ai créé une balise Git en tant que v1.1 en utilisant 

git tag -a v1.1 -m 'my version 1.1'

et j'ai poussé cette étiquette. Plus tard, j'ai apporté des modifications liées à v1.1. Maintenant, quand j'applique de nouvelles modifications et vérifie la balise git en utilisant git describe, elle me montre v1.1-g2dcc97.

Comment puis-je ajouter mon nouveau commit à la balise existante?

20
PVH

Vous ne pouvez pas mettre un nouveau commit dans une balise existante sans enfreindre une directive importante de Git: Jamais (*) ne modifie les commits que vous avez publiés.

Les tags dans Git ne sont pas censés être mutables. Une fois que vous poussez une étiquette, laissez-la tranquille.

Vous pouvez toutefois ajouter des modifications au-dessus de v1.1 et publier quelque chose comme v1.1.1 ou v1.2. Une façon de le faire serait

# Create a new branch from tag v1.1
git checkout -b newbranch v1.1

# Do some work and commit it

# Create a new tag from your work
git tag -a -m "Tag version 1.1.1, a bugfix release" v1.1.1

(*) À moins que vous n'ayez une raison vraiment super spéciale de le faire, et seulement si vous comprenez parfaitement les implications, et même dans ce cas, n'en prenez pas l'habitude.

27
Chris

Si vous absolument devez "déplacer" la balise au lieu d'en créer une nouvelle, procédez comme suit: 

NB: Comme @Chris dit, assurez-vous que vous avez une bonne raison de ne pas vouloir créer un nouveau tag car la meilleure pratique consiste à en créer un nouveau.

1. Checkout the tag (un détaché HEAD)

git checkout tag/v1.1

2. Créer et extraire une branche de cette balise (c.-à-d. Ramifier la balise)

git checkout -b my-tagged-branch

*** do work and commit changes ***

3. Poussez sur la branche distante. 

git Push  -u Origin my-tagged-branch

Si nécessaire, fusionner la branche avec d'autres branches qui nécessitent une modification (en cas de correction de bogue par exemple)

4. Tout en restant sur my-tagged-branch, supprimez la balise

git tag -d v1.1

5. Créez à nouveau le tag: cela "déplacera" le tag pour qu'il pointe vers votre dernier commit sur cette branche.

git tag v1.1

6. Supprimer le tag de la télécommande

git Push Origin :v1.1

7. Créer la balise sur la télécommande

git Push Origin v1.1

3
papigee