Обяснен етикет на Git: Как да изброявам, създавам, премахвам и показвам маркери в Git

Маркирането позволява на разработчиците да маркират важни контролно-пропускателни пунктове в хода на разработването на техните проекти. Например версиите за издаване на софтуер могат да бъдат маркирани. (Пример: v1.3.2) По същество ви позволява да дадете на коммит специално име (таг).

За да видите всички създадени тагове в азбучен ред:

git tag

За да получите повече информация за етикет:

git show v1.4

Има два вида тагове:

Коментирано

git tag -a v1.2 -m "my version 1.4"

Лек

git tag v1.2

Те се различават по начина, по който се съхраняват.

Те създават маркери за текущия ви ангажимент.

В случай, че искате да маркирате предишен фиксатор, посочете идентификатора на ангажимента, който искате да маркирате:

git tag -a v1.2 9fceb02

Имената на маркерите могат да се използват вместо идентификатори на фиксиране, докато се проверяват и избутват фиксирания към отдалечено репо.

Повече информация:

  • Git документация: Документация
  • Глава за маркиране на Git: Книга

Можете да изброите всички налични тагове в проект с git tagкомандата (забележете, че те ще се появят по азбучен ред):

$ git tag v1.0 v2.0 v3.0

Този начин за изброяване на маркери е чудесен за малки проекти, но по-големите проекти могат да имат стотици маркери, така че може да се наложи да ги филтрирате, когато търсите важна точка в историята. Можете да намерите тагове, съдържащи конкретни символи, добавяйки -lкъм git tagкомандата:

$ git tag -l "v2.0*" v2.0.1 v2.0.2 v2.0.3 v2.0.4

Създайте таг

Можете да създадете два типа маркери: анотирани и леки. Първите са състезателни обекти в базата данни на GIT: те се изчисляват, изискват съобщение (като комити) и съхраняват други важни данни като име, имейл и дата. От друга страна, леките тагове не изискват съобщение или съхраняват други данни, като работят само като указател към конкретна точка в проекта.

Създайте коментиран маркер

За да създадете анотиран маркер, добавете -a tagname -m "tag message"към git tagкомандата:

$ git tag -a v4.0 -m "release version 4.0" $ git tag v1.0 v2.0 v3.0 v4.0

Както можете да видите, -aуказва, че създавате анотиран маркер, след това идва името на маркера и накрая, -mпоследвано от съобщението на маркера, което да се съхранява в базата данни на Git.

Създайте лек маркер

Леките тагове съдържат само контролната сума за фиксиране (не се съхранява друга информация). За да създадете такъв, просто изпълнете git tagкомандата без други опции (символите -lw в края на името се използват за обозначаване на леки маркери, но можете да ги маркирате както искате):

$ git tag v4.1-lw $ git tag v1.0 v2.0 v3.0 v4.0 v4.1-lw

Този път не сте посочили съобщение или други подходящи данни, така че маркерът съдържа само контролната сума на препоръчания ангажимент.

Преглед на данните на маркера

Можете да изпълните git showкомандата, за да видите данните, съхранявани в етикет. В случай на коментирани маркери, ще видите данните на маркерите и данните за фиксиране:

$ git show v4.0 tag v4.0 Tagger: John Cash  Date: Mon Sat 28 15:00:25 2017 -0700 release version 4.0 commit da43a5fss745av88d47839247990022a98419093 Author: John Cash  Date: Fri Feb 20 20:30:05 2015 -0700 finished details

Ако тагът, който гледате, е лек, ще видите само препоръчаните данни за фиксиране:

$ git show v1.4-lw commit da43a5f7389adcb9201ab0a289c389ed022a910b Author: John Cash  Date: Fri Feb 20 20:30:05 2015 -0700 finished details

Маркиране на стари ангажименти

Можете също да маркирате минали ангажименти, като използвате git tag commit. За да направите това, ще трябва да посочите контролната сума на фиксацията (или поне част от нея) в реда на командата.

Първо стартирайте git log, за да разберете контролната сума на необходимия коммит:

$ git log --pretty=oneline ac2998acf289102dba00823821bee04276aad9ca added products section d09034bdea0097726fd8383c0393faa0072829a7 refactorization a029ac120245ab012bed1ca771349eb9cca01c0b modified styles da43a5f7389adcb9201ab0a289c389ed022a910b finished details 0adb03ca013901c1e02174924486a08cea9293a2 small fix in search textarea styles

Когато имате необходимата контролна сума, добавете я в края на реда за създаване на етикет:

$ git tag -a v3.5 a029ac

Ще видите, че маркерът е добавен правилно, изпълнявайки се git tag:

$ git tag v1.0 v2.0 v3.0 v3.5 v4.0 v4.1-lw

Натиснете етикети

Git не натиска маркери по подразбиране, когато стартирате командата git push. Така че, за да натиснете успешно таг към сървър, ще трябва да git push originкомандвате:

$ git push origin v4.0 Counting objects: 14, done. Delta compression using up to 8 threads. Compressing objects: 100% (16/16), done. Writing objects: 100% (18/18), 3.15 KiB | 0 bytes/s, done. Total 18 (delta 4), reused 0 (delta 0) To [email protected]:jcash/gitmanual.git * [new tag] v4.0 -> v4.0

You can also use the --tags option to add multiple tags at once with the git push origin command:

$ git push origin --tags Counting objects: 1, done. Writing objects: 100% (1/1), 160 bytes | 0 bytes/s, done. Total 1 (delta 0), reused 0 (delta 0) To [email protected]:jcash/gitmanual.git * [new tag] v4.0 -> v4.0 * [new tag] v4.1-lw -> v4.1-lw

Checking out Tags

You can use git checkout to checkout to a tag like you would normally do. But you need to keep in mind that this would result a detached HEAD state.

$ git checkout v0.0.3 Note: checking out 'v0.0.3'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout.

Deleting a Tag

You may find a situation were you want to delete a certain tag. There’s a very useful command for this situations:

$ git tag --delete v0.0.2 $ git tag v0.0.1 v0.0.3 v0.0.4

More Information

  • Git Pro - Tagging Basics
  • Git Pro - Documentation
  • Git HowTo
  • Git tip: Tags
  • Creating a tag

Sources

Git documentation: tags