web-dev-qa-db-fra.com

git request-pull de la branche locale au maître distant

J'adore la méthode github pull-request pour la collaboration sur le développement de logiciels distribués. Il permet la discussion et la révision du code.

Mon objectif est d'utiliser le même flux mais à l'intérieur de notre référentiel sans github. Je ne veux pas bifurquer le projet.

Imaginons, je développe une fonctionnalité géniale localement. Et je veux faire une demande d'extraction sur ma branche principale pour forcer la révision du code.

  A---B---C feature/awesomeFeature
 /
D---E---F---G Origin/master
              master

est-il possible de faire une pull request sur Origin/master?

J'ai essayé git request-pull feature/awesomeFeature Origin sans succès

22
Guillaume Vincent

Si vous avez développé votre branche de fonctionnalités localement, il vous suffit d'utiliser:

git request-pull Origin/master feature/awesomeFeature

Cela ne vous donnera qu'un résumé des modifications. Si vous voulez chaque détail, n'oubliez pas d'ajouter -p (pour le patch) sur votre ligne de commande.

31
ArnaudR

Les requêtes Pull ne sont pas réellement implémentées dans git lui-même, vous aurez donc besoin d'un autre système pour s'asseoir sur git. Si vous souhaitez héberger votre référentiel vous-même, vous pouvez utiliser des logiciels tels que GitLab pour gérer votre référentiel et vous permettre de faire des pull pull.

5
Adam H

est-il possible de faire une pull request sur Origin/master?

Aussi longtemps que Origin/master est une branche valide, oui.

Mais avec Git 2.23 (Q3 2019) "git request-pull "a appris à avertir lorsque la référence que nous leur demandons d'extraire du référentiel local et du référentiel publié est différente.

Voir commit 045422 , commit 5731dfc (28 mai 2019) par Paolo Bonzini (bonzini) .
(Fusionné par Junio ​​C Hamano - gitster - in commit dedc046 , 17 juin 2019)

request-pull: avertit si l'objet distant n'est pas le même que l'objet local

Dans certains cas, git request-pull peut être invoqué avec des objets distants et locaux qui diffèrent même s'ils pointent vers le même commit.
Par exemple, l'objet distant peut être une balise légère par rapport à une balise annotée du côté local; ou l'utilisateur peut avoir reformulé la balise localement et oublié de la pousser.

Quand cela arrive git-request-pull ne sera pas averti, car il vérifie uniquement que "git ls-remote "renvoie un SHA1 qui correspond à la validation locale (appelée $headrev dans le script).

Ce patch fait git-request-pull récupérer l'objet balise SHA1 lors du traitement du "git ls-remote ", afin qu'il puisse être comparé à l'objet local.

0
VonC