Comment marquer un ancien commit dans Git?

Nous sums nouveaux dans git et je veux définir une balise au début de notre repository. Notre code de production est identique au référentiel de départ, mais nous avons fait des commits depuis lors. Une étiquette au début nous permettrait de “réduire” la production à un état connu et stable.

Alors, comment append un tag à un ancien commit arbitraire?

Exemple:

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

9fceb02 est la partie initiale de l’ID de validation.

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

Vous pouvez faire git log pour afficher tous les identifiants de validation de votre twig actuelle.

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

Attention: Cela crée des balises avec la date du jour (et cette valeur est ce qui apparaîtra sur une page de publication de github, par exemple). Si vous souhaitez que la balise soit datée avec la date de validation, veuillez consulter une autre réponse .

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 balises dont la date est la date actuelle (lorsque vous avez exécuté la commande git tag ), et non la date de la validation. L’aide de Git pour la tag comporte une section “Sur les balises de backdating” qui dit:

Si vous avez importé des modifications d’un autre VCS et souhaitez append des balises pour les versions majeures de votre travail, il est utile de pouvoir spécifier la date à incorporer à l’intérieur de l’object tag. de telles données dans l’object tag affectent, par exemple, la commande de balises dans l’interface gitweb.

Pour définir la date utilisée dans les objects de balise futurs, définissez la variable d’environnement GIT_COMMITTER_DATE (voir la discussion ultérieure sur les valeurs possibles; la forme la plus courante 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 étiqueter dans Git” nous montre que nous pouvons extraire l’heure de la validation 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 simple de remplacer le HEAD par ce 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" 

La manière la 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 taguer et v1.0.0 étant la version que vous voulez taguer.

Utilisez la commande:

 git tag v1.0 ec32d32 

Où v1.0 est le nom de la balise et ec32d32 est la validation que vous souhaitez marquer

Une fois cela fait, vous pouvez pousser les tags en:

 git push origin --tags 

Référence:

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

OK , vous pouvez simplement faire:

 git tag -a   

Donc, si vous voulez append un tag: 1.0.2 pour valider 8ecdb02 , faites simplement:

 git tag -a 1.0.2 e50f795 

Aussi, vous ajoutez un message à la fin, en utilisant -m , quelque chose comme ceci:

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

Après tout, vous devez le pousser vers la remote , pour ce faire, faites simplement:

 git push origin 1.0.2 

Si vous avez beaucoup de balises que vous ne voulez pas mentionner une par une, faites simplement:

 git push origin --tags 

pour pousser toutes les balises ensemble …

En outre, j’ai créé les étapes dans l’image ci-dessous, pour plus de clarification des étapes: créer un tag sur un hash de commit

Vous pouvez également dd le tag dans Hub ou utiliser 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 twig et trouvez le commit auquel vous souhaitez append le tag et cliquez dessus:

trouvez votre engagement dans bitbucket

  1. Dans la page de validation , à droite, trouvez où il est indiqué No tags et cliquez sur l’icône + :

trouver où il est dit

  1. Dans la zone Nom du tag, ajoutez votre tag:

ajouter un nom de tag

  1. Vous voyez maintenant que la balise a été créée avec succès:

entrer la description de l'image ici

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 envisagée.

Si vous utilisez SourceTree pour gérer vos référentiels git, vous pouvez cliquer avec le bouton droit sur un commit et lui append un tag. Avec un autre clic de souris, vous pouvez également envoyer l’étiquette directement à la twig d’origine.