web-dev-qa-db-fra.com

Git: Comment extraire la demande de fusion localement et créer une nouvelle branche locale?

J'ai un dépôt gitlab là-bas, je dois tester chaque demande de fusion localement, avant de fusionner avec la branche cible. Comment puis-je extraire/récupérer la demande de fusion en tant que nouvelle branche?

14
  1. Tirez la demande de fusion vers une nouvelle branche

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

    c'est à dire git fetch Origin merge-requests/10/head:file_upload

  2. Paiement vers une succursale nouvellement créée

    git checkout BRANCHNAME

    c'est à dire (git checkout file_upload)

OU avec une seule commande

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

c'est à dire git fetch Origin merge-requests/18/head:file_upload && git checkout file_upload

26

Ceci est également documenté dans la documentation en ligne de GitLab: https://gitlab.com/help/user/project/merge_requests/index.md#checkout-merge-requests-locally

Ils fournissent ce script (git alias):

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

Ensuite, vous pouvez utiliser cette commande:

git mr Origin 4

Donc une nouvelle branche locale mr-Origin-4 sera créé.

6
Guillaume Husta

Vous pouvez également ajouter la ligne

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

à ton .git/config avoir git fetch récupérer toutes les demandes de fusion.

2
Tobias Kienzler