Quelle est la différence entre une demande Pull et une demande Merge.
Dans Github, c'est une demande Pull et dans GitLab par exemple, c'est une demande de fusion ... Y a-t-il une différence entre les deux?
La fonction de «demande de fusion» de GitLab est équivalente à la fonction de «demande de tirage» de GitHub . Les deux sont des moyens d'extraire les modifications d'une autre branche ou fourchette dans votre branche et de les fusionner avec votre code existant. Ce sont des outils utiles pour la révision du code et la gestion des changements.
Un article de GitLab explique les différences de dénomination de la fonctionnalité:
Les demandes de fusion ou d'extraction sont créées dans une application de gestion git et demandent à une personne affectée de fusionner deux branches. Des outils tels que GitHub et Bitbucket choisissent la demande d'extraction de nom, car la première action manuelle consiste à extraire la branche de fonctionnalité. Des outils tels que GitLab et Gitorious choisissent la demande de fusion de noms, car il s'agit de l'action finale demandée au cessionnaire. Dans cet article, nous les désignerons comme des demandes de fusion.
Une "demande de fusion" ne doit pas être confondue avec la git merge
commande. Une "pull request" ne doit pas non plus être confondue avec la git pull
commande. Les deux git
commandes sont utilisées en arrière-plan dans les demandes d'extraction et les demandes de fusion, mais une demande de fusion / extraction fait référence à un sujet beaucoup plus large que ces deux commandes.
Ce sont les mêmes caractéristiques
la source
À mon avis, ils signifient la même activité mais sous des angles différents:
Pensez-y, Alice fait quelques commits sur le référentiel A, qui est issu du référentiel B. de Bob
Quand Alice veut "fusionner" ses changements en B, elle veut en fait que Bob "tire" ces changements de A.
Par conséquent, du point de vue d'Alice, il s'agit d'une "demande de fusion", tandis que Bob la considère comme une "demande d'extraction".
la source
Il existe une différence subtile en termes de gestion des conflits. En cas de conflits, une pull request dans Github entraînera une validation de fusion sur la branche de destination . Dans Gitlab, lorsqu'un conflit est détecté, les modifications apportées seront sur un commit de fusion sur la branche source .
Voir https://docs.gitlab.com/ee/user/project/merge_requests/resolve_conflicts.html
la source
GitLab 12.1 (juillet 2019) introduit une différence:
" Fusionner les demandes de problèmes confidentiels "
Voir « Problèmes confidentiels » du numéro 58583 .
Une fonctionnalité similaire existe dans GitHub, mais implique la création d'un fork privé spécial, appelé " avis de sécurité du mainteneur ".
la source
Comme mentionné dans les réponses précédentes, les deux ont presque le même objectif. Personnellement, j'aime git rebase et merge request (comme dans gitlab). Cela soulage le réviseur / mainteneur, en s'assurant que lors de l'ajout d'une demande de fusion, la branche de fonctionnalité inclut toutes les dernières validations effectuées sur la branche principale après la création de la branche de fonctionnalité. Voici un article très utile expliquant le rebase en détail: https://git-scm.com/book/en/v2/Git-Branching-Rebasing
la source