Git/pull-request
Apparence
< Git
Principe
[modifier | modifier le wikicode]Une fois un dépôt distant cloné en local, il est facile de mettre régulièrement à jour sa version, à l'aide de la commande git pull
depuis le répertoire du dépôt (via crontab par exemple).
Par contre pour envoyer ses versions développées localement sur le dépôt distant, cela nécessite une pull request (alias PR, ou merge request, MR, voire demande de tirage).
git request-pull
Intérêt
[modifier | modifier le wikicode]- Déclencher une notification que le code est prêt à être fusionné, ce qui n'est pas le cas à chaque fois qu'on modifie une branche. Celle-ci a lieu généralement par email mais selon le serveur on peut configurer un hook vers du tchat ou autre.
- S’assigner la traitement de la PR.
- Joindre du texte non versionné dans Git, dans la description de la PR (ex : les cas de test). Et lister les retours de relecture / test de la branche. Ces retours peuvent même être configurés comme bloquant automatiquement le merge tant que pas résolus.
- Bloquer le merge si le résultat des pipelines CI sont en erreur.
- Voir les conflits dans la liste des PR à traiter.
- Supprimer les branches automatiquement après merge.
Mise à jour
[modifier | modifier le wikicode]Si la branche a été mise à jour depuis un autre client, git gère la fusion automatiquement si les fichiers modifiés sont différents. Par contre s'il y en a en commun, il faut procéder manuellement avec un rebase interactif :
git rebase -i origin/MaBranche1
Pour éviter cela, il faut bien vérifier que la branche sur laquelle on commence à travailler est bien la dernière version, avec :
git fetch origin/MaBranche1
- Ne pas lancer de
pull
après unrebase
sous peine d'inclure dans sa branche locale, les commits effectués entre-temps sur la branche principale. - Ne pas lancer un
push
après unreset
total de la branche, car une PR sans commit sera automatiquement fermée.