Слить ветку с тегом - Gitlab - PullRequest
0 голосов
/ 06 февраля 2019

На нашем предприятии, как часть команды DevOps, мы не имеем права устанавливать git на локальный ноутбук и получать репозиторий GitLab.У инструмента Jenkins есть ssh-доступ к репозиторию GitLab, но у нас нет ssh-доступа к jenkins (Git установлен).У нас есть доступ, чтобы посмотреть репо через портал GitLab, что-то вроде this , а затем настроить Jenkins для получения кода из GitLab.

Итак, я не могу запускать команды, подобные git log --all --decorate --oneline --graph, на моем ноутбуке, чтобы понять аспект слияния.


Под тегами раздела портала Gitlab на нашем предприятии, я вижу запись, как показано ниже:

enter image description here


Я понимаю, что тег является псевдонимом git commit хеш-ключа (40 символов), , но мне нужно уточнение в записи выше, где имя тега (sprint12-tag) указано для слияния ветви (feature-branch-x) с веткой (develop).

Как уже упоминалось здесь , Тег представляет версию определенной ветви в данный момент времени.Ветвь представляет собой отдельный поток разработки, который может выполняться одновременно с другими разработками в той же кодовой базе.

Итак, насколько я понимаю, тег sprint12-tag был назначен для определенного коммита(не может быть последним коммитом) на feature-branch-x, как показано ниже:

enter image description here


На данный момент я вижу варианты ниже вДомашняя страница GitLab, когда я нажимаю на значок слева вверху

enter image description here


Вопросы:

0) Как просмотреть такие графики (выше) на портале GitLab?если мы не запустим git log --all --decorate --oneline --graph на локальном ноутбуке ...

1) С указанным выше тегом (sprint12-tag) в любой ветви (в данном случае feature-branch-x), могу ли я сказать, что разработчик запустил нижекоманды?

$ git checkout develop
$ git merge sprint12-tag # ignoring the latest commit c5 on 'feature-branch-x'

$ #   or it can be `git merge e324567`

2) Как я понимаю запись ниже?как показано здесь например ...

enter image description here

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Тег представляет версию определенной ветви в данный момент времени.

Эта цитата вводит в заблуждение.Теги и ветки - это две независимые вещи.Вы должны думать о теге как о статическом маркере при конкретном коммите.С другой стороны, ветвь является динамичной и перемещается, когда вы добавляете в нее коммиты.Чтобы больше узнать о различиях между ветками и тегами, ознакомьтесь с этим разделом вопросов и ответов на нашем Software Engineering родственном сайте.

0 голосов
/ 06 февраля 2019

На GitLab выберите Repository > Graph на левой боковой панели, чтобы просмотреть дерево коммитов репо.Это покажет все коммиты и слияния, аннотированные именами и тегами ветвей.

[2.2] на изображении ниже - это тег.

Я бы сказал, что, как правило, тег разработчика фиксируетвручную после объединения некоторых работ.Вы делаете ваше окончательное слияние или PR с dev в master и получаете полученный коммит слияния.Этот коммит слияния затем помечается как release2.0 и никогда не удаляется от этого коммита.Я уверен, что это автоматизировано и в некоторых организациях.

Как я понимаю следующую запись?

На этом изображении показан тег с именем v11.7.5.Этот тег был помечен на GitLab (не в самом git) как «Версия v11.7.5».Коммит, на который указывает тег, это c5b5b18b.Сообщение о коммите этого коммита: Update VERSION to 11.7.5

пример:

https://code.sealedabstract.com/drewcrawford/CaveJohnson2/network/master

enter image description here

...