git: tags,aliases

Метки

Просмотр, поиск меток

git tag просмотр меток, метки перечислсяются в алфавитном порядке и порядок их появления не имеет значения
git tag -l [search-template] — поиск меток по шаблону

Перейдем в рабочую директорию раннее клонированного проекта hydra и просмотрим метки
git tag
8.3
8.6
v8.2
v8.4
v8.5

Осуществим поиск по шаблону
git tag -l 'v8*'
v8.2
v8.4
v8.5

Создание меток

Существует два типа меток

легковесные

Данный тип — это простой указатель на коммит, некоторый способ как-то отметить коммит, никакой доп. информации не несёт.
git tag [TAG] — создание легковесной метки (без каких либо ключей)

Создадим папку для проекта, инициализируем в ней гит, добавим файл
mkdir tag-sample
cd tag-sample/
git init
echo 'some text' > readme.txt

Индексируем файл, коммитем
git add readme.txt
git commit -m 'some first commit comment'

Смотрим историю коммитов и метки
git log
commit 39b45c58b572f14457a381b1108bb69afaa6f0ea (HEAD -> master)
Author: AuthName 
Date:   Mon Jul 16 13:44:59 2018 +1000

    some first commit comment

git show
commit 39b45c58b572f14457a381b1108bb69afaa6f0ea (HEAD -> master)
Author: AuthName 
Date:   Mon Jul 16 13:44:59 2018 +1000

    some first commit comment

diff --git a/readme.txt b/readme.txt
new file mode 100644
index 0000000..7b57bd2
--- /dev/null
+++ b/readme.txt
@@ -0,0 +1 @@
+some text

Добавляем метку
git tag v0.0.1a

Смотрим список меток
git tag
v0.0.1a

Смотрим метки 
git show v0.0.1a
commit 39b45c58b572f14457a381b1108bb69afaa6f0ea (HEAD -> master, tag: v0.0.1a)
Author: AuthName 
Date:   Mon Jul 16 13:44:59 2018 +1000

    some first commit comment

diff --git a/readme.txt b/readme.txt
new file mode 100644
index 0000000..7b57bd2
--- /dev/null
+++ b/readme.txt
@@ -0,0 +1 @@
+some text

Никакой доплонительной иноформации про метку не выводится, только помеченый коммит.

аннотированные

Данные метки хранятся в БД гита, как полноценный объект — содержит контрольную сумму, имя автора метки, дату, email, имеют комментарий.
git tag -a [TAG] -m [Comments] — создать аннотированную метку, если не указать ключ -m, то гит вызовет дефолтный редактор для добавления комментария, как при коммите.

Внесем изменения в файл readme.txt
echo 'new line1' >> readme.txt

Индексируем
git add  readme.txt

Коммитем
git commit -m 'second commit'

Добавляем метку
git tag -a v0.0.2a -m 'some tag comment'

Проверяем метку
git show v0.0.2a
tag v0.0.2a
Tagger: AuthName 
Date:   Mon Jul 16 13:56:17 2018 +1000

some tag comment

commit ebb4050c183fa06bb555e0e70bd6a5c82e3a6dbc (HEAD -> master, tag: v0.0.2a)
Author: AuthName 
Date:   Mon Jul 16 13:55:49 2018 +1000

    second commit

diff --git a/readme.txt b/readme.txt
index 7b57bd2..07c2c22 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1 +1,2 @@
 some text
+new line1

Как видим из примера, перед инфой о коммите идут данные про метку — дата, автор, email, комментарий…

Выставление меток на пройденные коммиты

git tag -a [tag] [commit_control_sum] — выставление метки для пройденного коммита

Внесём изменения в проект, проиндекируем и закоммитем, метку не выставляем
echo "new line 2 " >> readme.txt
git add readme.txt 
git commit -m "add new line2 to readme.txt"

Внесём изменения в проект, проиндекируем и закоммитем, выставим метку
touch temfile
git add temfile 
git commit -m "create tempfile"
git tag -a v0.0.4a -m "comment for the tag"

Смотрим метки
git tag
v0.0.1a
v0.0.2a
v0.0.4a

Смотрим историю коммитов
git log --pretty=oneline
82620ed1b68db8dd35ecef31d876d2287c26379a (HEAD -> master, tag: v0.0.4a) create tempfile
be4a091ca70a731259a5a3f45c979574623c0c73 add new line2 to readme.txt
ebb4050c183fa06bb555e0e70bd6a5c82e3a6dbc (tag: v0.0.2a) second commit
39b45c58b572f14457a381b1108bb69afaa6f0ea (tag: v0.0.1a) some first commit comment


Добавляем метку к уже пройденному коммиту
git tag -a v0.0.3a -m "forgotten tag" be4a091ca70a731259a5a3f45c979574623c0c73

Смотрим историю коммитов
git log --pretty=oneline
82620ed1b68db8dd35ecef31d876d2287c26379a (HEAD -> master, tag: v0.0.4a) create tempfile
be4a091ca70a731259a5a3f45c979574623c0c73 (tag: v0.0.3a) add new line2 to readme.txt
ebb4050c183fa06bb555e0e70bd6a5c82e3a6dbc (tag: v0.0.2a) second commit
39b45c58b572f14457a381b1108bb69afaa6f0ea (tag: v0.0.1a) some first commit comment

Смотрим метку
git show v0.0.3a
tag v0.0.3a
Tagger: AuthName 
Date:   Mon Jul 16 14:47:01 2018 +1000

forgotten tag

commit be4a091ca70a731259a5a3f45c979574623c0c73 (tag: v0.0.3a)
Author: AuthName 
Date:   Mon Jul 16 14:43:36 2018 +1000

    add new line2 to readme.txt

diff --git a/readme.txt b/readme.txt
index 07c2c22..b429b6d 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,3 @@
 some text
 new line1
+new line 2

Обмен метками с удаленным репозиторием

git push [remote_rep] [tag] отправка на сервер одно конкртеной метки
git push [remote_rep] --tag отправка на сервер всех имеющихся меток проекта

Псевдонимы

Если есть необходимость в создании псевдонимов для команд гита, то можно использовать команду git config --global alias [command]

git config --global alias.t tag
git config --global alias.st status

Теперь соответственно каждая из команд будет доступна по соответствующему псевдониму
git t
git st

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *