Конвейеры Git/Bitbucket - что заставляет теги выглядеть по-разному в зависимости от того, к какой ветви я добавляю?

Я пытаюсь понять, почему я получаю два разных результата относительно тегов git при запуске моего файла bitbucket-pipelines.yml. В настоящее время мой проект имеет теги, запущенные из 1.0.0 - 1.0.25, Файл.yml выглядит следующим образом...

pipelines:
  branches:
    diff-test:
      - step:
        script:
          - export PREVIOUS_GIT_HASH=`git rev-list --tags --skip=2 --max-count=1`
          - export PREVIOUS_GIT_TAG=`git describe ${PREVIOUS_GIT_HASH} --abbrev=0`
          - export GIT_TAG=`git describe --tags --abbrev=0`
          - echo ${PREVIOUS_GIT_TAG} ${GIT_TAG}
  # A develop step/script happens here but it's irrelevant...

    master:
      - step:
        script:
        # set the most recent tag as an environment variable.
          - export GIT_TAG=`git describe --tags --abbrev=0`
          - zip -FSr ${BITBUCKET_REPO_SLUG}-${GIT_TAG}.zip ./ -x@exclude.lst
          - curl -u ${BB_AUTH_STRING} -X POST "https://api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@"${BITBUCKET_REPO_SLUG}-${GIT_TAG}.zip"

Когда я нажимаю на master, тег, добавленный к артефакту загрузки, является правильным (1.0.25). Тем не менее, когда я подталкиваю к diff-testтеги, которые выводятся 1.0.14 а также 1.0.15,

В документации GIT это для describeэто говорит --tags: Instead of using only the annotated tags, use any tag found in refs/tags namespace. This option enables matching a lightweight (non-annotated) tag.,

Мой вопрос - что заставляет теги выглядеть по-разному в зависимости от того, на какую ветку я нажимаю?

1 ответ

Решение

Git description предоставляет информацию о конкретном коммите, а все остальное (т. Е. Тег) относится к этому коммиту. Он не будет сообщать о тегах, которые не существуют в предке этого коммита. Поскольку ветви имеют разное происхождение, описание коммитов в разных ветвях может дать разные результаты.

Из документации (выделено мое):

Команда находит самый последний тег, доступный из коммита.

Другие вопросы по тегам