Cum pentru a eticheta o vârstă în Git?

Suntem noi la git, și vreau pentru a seta un tag la început de depozit. Producția noastră de cod este același ca la începutul depozit, dar am'am facut comite de atunci. Un tag de la început ne-ar permite să "se rostogolească înapoi" producție de la un cunoscut, stabil de stat.

Deci, cum de a adăuga o etichetă la un arbitrar, mai în vârstă, a comis-o?

Comentarii la întrebare (3)
Soluția

Exemplu:

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

Unde 9fceb02` este partea de început a comite id.

Apoi, puteți împinge tag-ul folosind git push origin v1.2`.

Puteți face git log pentru a afișa toate comite id's la curent ramură.

Există, de asemenea, un capitol bun pe tagging în Pro Git carte.

Avertisment: Acest lucru creează etichete cu data curentă (și care este valoarea ce se va afișa pe o GitHub comunicate de pagina, de exemplu). Dacă doriți ca eticheta să fie datate cu a comite data, vă rugăm să se uite la un alt răspuns](https://stackoverflow.com/a/21759466/674039).

Comentarii (6)

Doar Codul

# 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

Detalii

Răspunsul de @dkinzer creează tag-uri a căror dată este data curentă (atunci când a fugit `git tag comandă), nu data a comis-o. Git ajutor pentru "etichetă" are o secțiune _"Pe Backdating Tag-uri"_ care spune:

If ați importat unele modificări de la un alt INVESTITORII și-ar dori pentru a adăuga tag-uri pentru versiuni majore de munca ta, este util să fie capabil să precizeze data pentru a încorpora în interiorul tag-ul obiect; astfel de date în tag-ul object afectează, de exemplu, comanda de tag-uri în gitweb interfață.

_To setați data utilizate în viitor tag obiecte, setați variabila de mediu GIT_COMMITTER_DATE (a se vedea mai târziu discuție de valori posibile; cea mai comună formă este "YYYY-MM-DD HH:MM")._

For exemplu:

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

Pagina "Cum de a Eticheta în Git" ne arată că putem extrage momentul de CAP comite prin:

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

Am putea extrage data de un anumit comite prin:

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

Cu toate acestea, în loc de a repeta comite de două ori, se pare mai ușor de a schimba doar CAPUL de la care se angajează și să-l utilizați în mod implicit în ambele comenzi:

git checkout 9fceb02 

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

Cel mai simplu mod de a face acest lucru este

git tag v1.0.0 f4ba1fc

cu f4ba1fcfiind la început de hash a comite doriți să o etichetați șiv1.0.0` fiind versiunea pe care doriți să o etichetați.

Comentarii (0)

Folosiți comanda:

git tag v1.0 ec32d32

În cazul în care v1.0 este un nume de etichetă și ec32d32 este comis doriți să o etichetați

Odată terminat, puteți împinge tag-uri de:

git push origin --tags

Referință:

Git (revizuire de control): Cum pot eticheta un anumit anterioare punct de comite în GitHub?

Comentarii (0)

OK, puteți face pur și simplu:

git tag -a  

Deci, dacă doriți să adăugați tag-ul: 1.0.2 să comită e50f795, doar pur și simplu:

git tag -a 1.0.2 e50f795

De asemenea, vă adauga un mesaj la final, folosind -m, ceva de genul asta:

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

După toate, aveți nevoie pentru a împinge-l la "la distanță", pentru a face asta, pur și simplu:

git push origin 1.0.2 

Dacă aveți mai multe tag-uri care nu't vreau să menționez-le unul câte unul, doar pur și simplu:

git push origin --tags

pentru a împinge toate tag-uri împreună...

De asemenea, am creat pașii din imaginea de mai jos, pentru mai multe clarificări din pașii de mai jos:


Puteți, de asemenea, dd tag-ul în Hub sau folosind instrumente, cum ar fi SourceTree, pentru a evita pașii anteriori, m-am logat la mine Bitbucket * în acest caz și de a face de acolo:

  1. Du-te la sucursala dvs. și pentru a găsi comite doriți să adăugați tag-ul și faceți clic pe ea:

  1. În comite pagina, pe dreapta, găsi în cazul în care se spune `Nu tag-uri și faceți clic pe pictograma"+":

  1. În numele tag-ul cutie, adauga tag-ul:

  1. Acum puteți vedea că tag-ul a creat cu succes:

Comentarii (0)

Aceasta este o întrebare veche, și răspunsurile dat deja toate lucrările, dar nu's, de asemenea, o nouă opțiune care poate fi luată în considerare.

Daca're folosind SourceTree de a gestiona arhive git, puteți să faceți clic dreapta pe orice comite și adăugați o etichetă la ea. Cu un alt mouseclick puteți trimite, de asemenea, tag-ul direct la sucursala de origine.

Comentarii (0)

Pornind de la răspunsurile celorlalți, aici este un one-liner soluție care stabilește tag la data când s-a întâmplat de fapt, folosește adnotat tag-ul și nu necesită git checkout:

tag="v0.1.3" commit="8f33a878" bash -c 'GIT_COMMITTER_DATE="$(git show --format=%aD $commit)" git tag -a $tag -m $tag $commit'
git push --tags origin master

unde " tag " este setat la tag dorit șir, și comit a comite hash.

Comentarii (0)

La răspuns de @Phrogz este mare, dar nu't de lucru pe Windows. Aici's cum pentru a eticheta un vechi comite cu comis's data inițială folosind Powershell:

lang-powershell git checkout 9fceb02 $env:GIT_COMMITTER_DATE = git show --format=%aD | Selectați -Prima 1 git tag v1.2 git checkout master

Comentarii (0)