Git команд - Найдите тег, после которого была создана новая ветка - PullRequest
0 голосов
/ 09 июля 2020

В наших проектах мы используем репозитории bitbucket и теги для определения версий, в которых был выпущен релиз. Есть ли способ определить тег, после которого была создана новая ветка выпуска.

Ответы [ 2 ]

1 голос
/ 09 июля 2020

Последний тег в данной ветке можно найти с помощью git describe.

git describe --tags <branch_name>

Диаграмма:

A - B - C - D - E - F - G - H - I (my_branch)
    ^               ^
    |- Tag 'foo'    |
                    |- Tag 'bar'

Пример:

git describe --tags my_branch

Завершено Пример

(Примечание: метки не соответствуют диаграмме в точности)

❯ git init
Initialized empty Git repository in /private/var/folders/bd/9y15j5cd4qd80vgfbsp6b67r0000gp/T/tmp.KnhXdwv1/.git/

/var/folders/bd/9y15j5cd4qd80vgfbsp6b67r0000gp/T/tmp.KnhXdwv1 master
❯ git commit --allow-empty -m "A"
[master (root-commit) d29d846] A

/var/folders/bd/9y15j5cd4qd80vgfbsp6b67r0000gp/T/tmp.KnhXdwv1 master
❯ git commit --allow-empty -m "B"
[master 33eed45] B

/var/folders/bd/9y15j5cd4qd80vgfbsp6b67r0000gp/T/tmp.KnhXdwv1 master
❯ git tag v0.0.1

/var/folders/bd/9y15j5cd4qd80vgfbsp6b67r0000gp/T/tmp.KnhXdwv1 master
❯ git commit --allow-empty -m "C"
[master cd6d882] C

/var/folders/bd/9y15j5cd4qd80vgfbsp6b67r0000gp/T/tmp.KnhXdwv1 master
❯ git commit --allow-empty -m "D"
[master 420558f] D

/var/folders/bd/9y15j5cd4qd80vgfbsp6b67r0000gp/T/tmp.KnhXdwv1 master
❯ git tag v0.0.2

/var/folders/bd/9y15j5cd4qd80vgfbsp6b67r0000gp/T/tmp.KnhXdwv1 master
❯ git checkout -b my_branch
Switched to a new branch 'my_branch'

/var/folders/bd/9y15j5cd4qd80vgfbsp6b67r0000gp/T/tmp.KnhXdwv1 my_branch
❯ git commit --allow-empty -m "E"
[my_branch d4d421d] E

/var/folders/bd/9y15j5cd4qd80vgfbsp6b67r0000gp/T/tmp.KnhXdwv1 my_branch
❯ git commit --allow-empty -m "D"
[my_branch 08edc95] D

/var/folders/bd/9y15j5cd4qd80vgfbsp6b67r0000gp/T/tmp.KnhXdwv1 my_branch
❯ git describe --tags my_branch
v0.0.2-2-g08edc95

Как получить последнее имя тега в текущей ветке в Git?

0 голосов
/ 09 июля 2020
git tag --merged <branch name>

Должны быть перечислены все теги, доступные этой ветке. Самый последний тег обычно находится вверху.

Вы можете уточнить это, показывая только теги выпуска (например, фильтрация по «выпуску») и только по первой строке, например

git tag --merged <branch name> | grep -m1 -i release

Примечание: это не касается фактического создания ветки, а того, какие теги могут быть достигнуты через данную ветку. Таким образом, если ветка была создана после версии 0.1, но версия 0.2 была позже объединена с веткой, тогда должен появиться тег 0.2.

...