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
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.
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.
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 localDans 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.