Die "Merge Request" -Funktion von GitLab entspricht der "Pull Request" -Funktion von GitHub . Beides ist eine Möglichkeit, Änderungen aus einem anderen Zweig oder Zweig in Ihren Zweig zu ziehen und die Änderungen mit Ihrem vorhandenen Code zusammenzuführen. Sie sind nützliche Tools für die Codeüberprüfung und das Änderungsmanagement.
In einem Artikel von GitLab werden die Unterschiede bei der Benennung der Funktion erläutert:
Zusammenführungs- oder Pull-Anforderungen werden in einer Git-Verwaltungsanwendung erstellt und fordern eine zugewiesene Person auf, zwei Zweige zusammenzuführen. Tools wie GitHub und Bitbucket wählen die Namensabrufanforderung aus, da die erste manuelle Aktion darin besteht, den Feature-Zweig abzurufen. Tools wie GitLab und Gitorious wählen die Namenszusammenführungsanforderung aus, da dies die letzte Aktion ist, die vom Empfänger angefordert wird. In diesem Artikel werden sie als Zusammenführungsanforderungen bezeichnet.
Eine "Zusammenführungsanforderung" sollte nicht mit dem git merge
Befehl verwechselt werden . Eine "Pull-Anfrage" sollte auch nicht mit dem git pull
Befehl verwechselt werden . Beide git
Befehle werden hinter den Kulissen sowohl in Pull-Anforderungen als auch in Zusammenführungsanforderungen verwendet. Eine Zusammenführungs- / Pull-Anforderung bezieht sich jedoch auf ein viel umfassenderes Thema als nur diese beiden Befehle.
Sie sind das gleiche Merkmal
quelle
Aus meiner Sicht bedeuten sie dieselbe Aktivität, jedoch aus unterschiedlichen Perspektiven:
Denken Sie darüber nach, Alice macht einige Commits für Repository A, das aus Bobs Repository B gegabelt wurde.
Wenn Alice ihre Änderungen in B "zusammenführen" möchte, möchte sie tatsächlich, dass Bob diese Änderungen aus A "zieht".
Aus Alices Sicht handelt es sich daher um eine "Zusammenführungsanforderung", während Bob sie als "Pull-Anforderung" betrachtet.
quelle
In Bezug auf das Konfliktmanagement gibt es einen subtilen Unterschied. Im Falle von Konflikten führt eine Pull-Anforderung in Github zu einem Zusammenführungs-Commit für den Zielzweig . In Gitlab, wenn ein Konflikt gefunden wird, haben die Änderungen an einem merge commit auf dem seine Quelle Zweig.
Siehe https://docs.gitlab.com/ee/user/project/merge_requests/resolve_conflicts.html
quelle
GitLab 12.1 (Juli 2019) führt einen Unterschied ein:
" Zusammenführungsanfragen für vertrauliche Probleme "
Siehe " Vertrauliche Probleme " ab Ausgabe 58583 .
Eine ähnliche Funktion gibt es in GitHub, aber es wird ein spezieller privater Fork erstellt, der als " Sicherheitshinweis für Betreuer " bezeichnet wird.
quelle
Wie bereits in früheren Antworten erwähnt, dienen beide fast demselben Zweck. Persönlich mag ich Git Rebase und Merge Request (wie in Gitlab). Dies entlastet den Prüfer / Betreuer und stellt sicher, dass der Feature-Zweig beim Hinzufügen einer Zusammenführungsanforderung alle neuesten Commits enthält, die im Hauptzweig ausgeführt wurden, nachdem der Feature-Zweig erstellt wurde. Hier ist ein sehr nützlicher Artikel, der die Rebase ausführlich erklärt: https://git-scm.com/book/en/v2/Git-Branching-Rebasing
quelle