Fichier de conf ~/.gitconfig
[alias]
mr = !sh -c 'git fetch $1 merge-requests/$2/head:mr-$1-$2 && git checkout mr-$1-$2' -
Exemple, remote origin et merge-requests 123
git mr origin 123
Cela la créer la branche locale mr-origin-123
Exemple actuel de la conf du dépôt local (dans le fichier
.git/config
) :
[remote "origin"]
url = https://gitlab.com/gitlab-org/gitlab-foss.git
fetch = +refs/heads/*:refs/remotes/origin/*
Modifier le fichier de conf ou l’éditer avec la commande :
git config -e
Ajouter la configuration suivante :
fetch = +refs/merge-requests/*/head:refs/remotes/origin/merge-requests/*
Ce qui donne la configuration complète suivante :
[remote "origin"]
url = https://gitlab.com/gitlab-org/gitlab-foss.git
fetch = +refs/heads/*:refs/remotes/origin/*
fetch = +refs/merge-requests/*/head:refs/remotes/origin/merge-requests/*
Maintenant avec un fetch
nous avons la possibilité de
voir les merge-requests :
git fetch origin
...
From https://gitlab.com/gitlab-org/gitlab-foss.git
* [new ref] refs/merge-requests/1/head -> origin/merge-requests/1
* [new ref] refs/merge-requests/2/head -> origin/merge-requests/2
...
Et pour faire un checkout :
git checkout origin/merge-requests/1