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 du jour (lorsque vous avez exécuté la commande git tag
commande), no la date de la livraison. 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 dans l'objet balise ; ces données dans l'objet balise affectent, par exemple, l'ordre des balises dans l'interface gitweb.
_Pour définir la date utilisée dans les futurs objets de balises, définissez la variable d'environnement GIT_COMMITTER_DATE
(voir la discussion ultérieure sur les valeurs possibles ; la forme la plus courante est "YYYY-MM-DD HH:MM")._
Par exemple :
$ GIT_COMMITTER_DATE="2006-10-02 10:31" git tag -s v1.0.1
La page "Comment baliser dans Git" nous montre que nous pouvons extraire l'heure du commit 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 pour 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"
1 votes
Je suis venu ici pour trouver de l'aide pour supprimer un ancien tag localement et sur une télécommande et j'ai finalement trouvé ceci utile, peut-être que cela aidera quelqu'un d'autre aussi : gist.github.com/mobilemind/7883996
2 votes
Et n'oubliez pas Comment pousser une balise vers un dépôt distant à l'aide de Git ? parce que Git ne va pas pousser un tag sans faire quelque chose de spécial.