Realizar o checkout de um merge request do GitLab.
Opção 1: criar uma referência para o merge request
git fetch origin merge-requests/MERGE_REQUEST_ID/head:REF_BRANCH_NAME
# MERGE_REQUEST_ID = ID do Merge Request
# REF_BRANCH_NAME = um nome qualquer
Exemplo
git fetch origin merge-requests/118/head:MR118
git checkout MR118
Checando a referência:
git show-ref | grep MR118
Deletando a referência:
git branch -D MR118
Opção 2: adicionando uma nova referência ao remote
É possível editando o arquivo .git/config
ou por meio do comando git config -e
. Vamos fazer por meio do comando.
# abrir as configurações do git no editor padrão
git config -e
Dentro da seção [remote "origin"]
adicionar na última linha o trecho abaixo
fetch = +refs/merge-requests/*/head:refs/remotes/origin/merge-requests/*
ficando algo parecido com
[remote "origin"]
url = git@git.doinio.com:mhagnumdw/dummy.git
fetch = +refs/heads/*:refs/remotes/origin/*
fetch = +refs/merge-requests/*/head:refs/remotes/origin/merge-requests/*
então, salvar o arquivo.
Em seguida fazer o checkout do merge request
# atualizar as referências (vão aparecer as referências de merge request)
git fetch origin
# checkout do merge request (ID do merge request ao final)
git checkout origin/merge-requests/118