Git : au sujet des pull requests

Anne git

Les pull requests permettent de proposer des modifications sur un dépôt qui ne nous appartient pas.

Par défaut, lorsqu’on fait un fetch, git utilise ce qui est spécifié dans .git/config comme par exemple :

[remote "origin"]
	url = ssh://git@git.nuage.com/projet/repo.git
	fetch = +refs/heads/*:refs/remotes/origin/*

Mais on peut aussi récupérer par exemple les pull requests. Il faut juste connaitre le chemin. Par exemple, sous Stash, pour récupérer toutes les pull requests, on peut faire :

$ git fetch origin +refs/pull-requests/*:refs/remotes/origin/pr/*

Plus pratique encore, pour créer une branche locale correspondant à une PR que l’on veut tester :

$ git fetch origin refs/pull-requests/42/from:pr_42

Cela crée la branche locale pr_42 pour la PR numéro 42 dans origin. Ainsi, même pas besoin d’avoir accès au dépôt privé de celui qui a fait la PR. Pour tester, il ne reste plus qu'à faire :

$ git checkout pr_42

Je n’ai pas testé moi-même, mais il semblerait que sous GitHub, l'équivalent soit :

$ git fetch origin refs/pull/42/head:pull_42

Dans les deux cas, on peut remplacer from (ou head) par merge pour avoir la version fusionnée dans la branche cible (généralement master).

Voir aussi :