Question Comment marquer un ancien commit dans Git?


Nous sommes nouveaux à git, et je veux mettre une balise au début de notre dépôt. Notre code de production est le même que celui du dépôt initial, mais nous avons effectué des validations depuis. Une balise au début nous permettrait de «ramener» la production à un état connu et stable.

Alors, comment ajouter un tag à un commit plus ancien?


680
2017-12-09 23:23


origine


Réponses:


Exemple:

git tag -a v1.2 9fceb02 -m "Message here"

9fceb02 est la partie début de l'ID de validation.

Vous pouvez ensuite les pousser en utilisant git push --tags origin master

Tu peux faire git log pour afficher tous les identifiants de validation dans votre branche actuelle.

Il y a aussi un bon chapitre sur marquage dans le livre Pro Git.

Attention: Cela crée des tags avec le date actuelle (et cette valeur est ce qui va apparaître sur une page de versions github, par exemple). Si vous voulez que l'étiquette soit datée avec la date de livraison, veuillez regarder une autre réponse.


1104
2017-12-09 23:27



Juste le code

# Set the HEAD to the old commit that we want to tag
git checkout 9fceb02

# temporarily set the date to the date of the HEAD commit, and add the tag
GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" \
git tag -a v1.2 -m"v1.2"

# set HEAD back to whatever you want it to be
git checkout master

Détails

La réponse de @dkinzer crée des tags dont la date est la date actuelle (lorsque vous avez exécuté le git tag commander), ne pas la date de la validation. L'aide de Git pour tag a une section "Sur les étiquettes antidatées" qui dit:

Si vous avez importé des modifications d'un autre VCS et que vous souhaitez ajouter des balises pour les versions majeures de votre travail, il est utile de pouvoir spécifier la date à intégrer à l'intérieur de l'objet tag; ces données dans l'objet tag affectent, par exemple, l'ordre des balises dans l'interface gitweb.

Pour définir la date utilisée dans les futurs objets de balise, définissez la variable d'environnement GIT_COMMITTER_DATE (Voir la discussion plus tard des valeurs possibles, la forme la plus commune est "AAAA-MM-JJ HH: MM").

Par exemple:

$ GIT_COMMITTER_DATE="2006-10-02 10:31" git tag -s v1.0.1

La page "Comment marquer dans Git" nous montre que nous pouvons extraire le temps de la commande HEAD via:

git show --format=%aD  | head -1
#=> Wed, 12 Feb 2014 12:36:47 -0700

Nous pourrions extraire la date d'un commit spécifique via:

GIT_COMMITTER_DATE="$(git show 9fceb02 --format=%aD | head -1)" \
git tag -a v1.2 9fceb02 -m "v1.2"

Cependant, au lieu de répéter le commit deux fois, il semble plus facile de simplement changer le HEAD en commit et de l'utiliser implicitement dans les deux commandes:

git checkout 9fceb02 

GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" git tag -a v1.2 -m "v1.2"

80
2018-02-13 16:09



Le moyen le plus simple de le faire est

git tag v1.0.0 f4ba1fc

avec f4ba1fc étant le début du hachage du commit que vous voulez marquer et v1.0.0 étant la version que vous voulez taguer.


61
2018-06-02 14:30



Utilisez la commande:

git tag v1.0 ec32d32

Où v1.0 est le nom du tag et ec32d32 est le commit que vous voulez taguer

Une fois cela fait, vous pouvez appuyer sur les tags par:

git push origin --tags

Référence:

Git (contrôle de révision): Comment puis-je marquer un point de validation précédent spécifique dans GitHub?


12
2017-09-21 20:29



C'est une vieille question, et les réponses ont déjà donné tout le travail, mais il y a aussi une nouvelle option qui peut être considérée.

Si vous utilisez SourceTree pour gérer vos dépôts git, vous pouvez faire un clic droit sur n'importe quel commit et lui ajouter une balise. Avec un autre clic, vous pouvez également envoyer le tag directement à la branche d'origine.


7
2017-09-15 11:56



D'accord, Vous pouvez simplement faire:

git tag -a <tag> <commit-hash>

Donc, si vous voulez ajouter marque: 1.0.2 pour commettre 8ecdb02, faites simplement simplement:

git tag -a 1.0.2 e50f795

Vous ajoutez également un message à la fin, en utilisant -m, quelque chose comme ça:

git tag -a 1.0.2 e50f795 -m "my message"

Après tout, vous devez le pousser à la remotePour ce faire, faites simplement:

git push origin 1.0.2 

Si vous avez de nombreux tags que vous ne voulez pas les mentionner un par un, faites simplement:

git push origin --tags

pour pousser tous les tags ensemble ...

En outre, j'ai créé les étapes dans l'image ci-dessous, pour plus de précisions sur les étapes: creating tag on a commit hash

Vous pouvez également ajouter le tag dans Centre ou en utilisant des outils comme SourceTree, pour éviter les étapes précédentes, je me suis connecté à mon Bitbucket dans ce cas et à partir de là:

  1. Allez dans votre agence et trouvez le commettre vous voulez ajouter la balise à et cliquer dessus:

find your commit in bitbucket

  1. dans le page de validation, à droite, trouve où il dit No tags et cliquez sur le + icône:

find where it says No tags

  1. Dans la boîte de nom du tag, ajoutez votre tag:

add tag name

  1. Vous voyez maintenant que le tag a créé avec succès:

enter image description here


7
2017-07-08 07:42