Git: Как проверить запрос слияния локально и создать новую локальную ветвь?

У меня есть gitlab-репозиторий там, где мне нужно протестировать каждый запрос на слияние локально, до слияния с целевой ветвью. Как я могу взять/получить запрос слияния как новую ветку?

Ответ 1

  1. Запрос запроса на слияние на новую ветку

    git fetch origin merge-requests/REQUESTID/head:BRANCHNAME

    т.е. git fetch origin merge-requests/10/head:file_upload

  2. Оформить заказ на вновь созданную ветку

    git checkout BRANCHNAME

    т.е. (git checkout file_upload)

ИЛИ с одной командой

git fetch origin merge-requests/REQUESTID/head:BRANCHNAME && git checkout BRANCHNAME

т.е. git fetch origin merge-requests/18/head:file_upload && git checkout file_upload

Ответ 2

Это также задокументировано в онлайн-документации GitLab: https://gitlab.com/help/user/project/merge_requests/index.md#checkout-merge-requests-locally

Они поставляют этот скрипт (git alias):

[alias]
    mr = !sh -c 'git fetch $1 merge-requests/$2/head:mr-$1-$2 && git checkout mr-$1-$2' -

Тогда вы можете использовать эту команду:

мерзавец происхождение 4

Таким образом, будет создан новый локальный филиал mr-origin-4.

Ответ 3

Вы также можете добавить строку

fetch = +refs/merge-requests/*/head:refs/remotes/origin/merge-requests/*

в ваш .git/config чтобы git fetch извлекал все запросы на слияние.