Was ist der Unterschied zwischen einem Pull-Request und einem Merge-Request?
In GitHub ist es ein Pull-Request, während es zum Beispiel in GitLab ein Merge-Request ist. Gibt es also einen Unterschied zwischen beiden?
Was ist der Unterschied zwischen einem Pull-Request und einem Merge-Request?
In GitHub ist es ein Pull-Request, während es zum Beispiel in GitLab ein Merge-Request ist. Gibt es also einen Unterschied zwischen beiden?
Die Funktion "Merge-Anfrage" von GitLab ist äquivalent zur Funktion "Pull-Anfrage" von GitHub. Beide dienen dazu, Änderungen aus einem anderen Branch oder Fork in deinen Branch zu ziehen und die Änderungen mit deinem bestehenden Code zusammenzuführen. Sie sind nützliche Werkzeuge für Code-Reviews und Änderungsmanagement.
In einem Artikel von GitLab werden die Unterschiede in der Benennung der Funktion erläutert:
Merge- oder Pull-Anfragen werden in einer Git-Verwaltungsanwendung erstellt und bitten eine bestimmte Person, zwei Branches zusammenzuführen. Tools wie GitHub und Bitbucket wählen den Namen Pull-Anfrage, da die erste manuelle Aktion das Ziehen des Feature-Branches ist. Tools wie GitLab und Gitorious wählen den Namen Merge-Anfrage, da dies die endgültige Aktion ist, die vom Beauftragten angefordert wird. In diesem Artikel werden wir sie als Merge-Anfragen bezeichnen.
Ein "Merge-Anfrage" sollte nicht mit dem git merge
Befehl verwechselt werden. Ebenso sollte eine "Pull-Anfrage" nicht mit dem git pull
Befehl verwechselt werden. Beide git
Befehle werden im Hintergrund sowohl bei Pull-Anfragen als auch bei Merge-Anfragen verwendet, aber eine Merge-/Pull-Anfrage bezieht sich auf ein viel breiteres Thema als nur diese beiden Befehle.
Nach meiner Ansicht bedeuten sie die gleiche Aktivität, jedoch aus unterschiedlichen Perspektiven:
Denken Sie darüber nach, Alice macht einige Änderungen im Repository A, das von Bob's Repository B abgezweigt wurde.
Wenn Alice ihre Änderungen in B "zusammenführen" möchte, möchte sie eigentlich, dass Bob diese Änderungen von A "zieht".
Daher betrachtet Alice es als "Merge-Anfrage", während Bob es als "Pull-Anfrage" betrachtet.
Sie sind das gleiche Feature
Zusammenführungs- oder Pull-Anfragen werden in einer Git-Verwaltungsanwendung erstellt und bitten eine zugewiesene Person, zwei Branches zusammenzuführen. Tools wie GitHub und Bitbucket wählen den Namen Pull-Anfrage, da die erste manuelle Aktion darin bestehen würde, den Feature-Branch zu ziehen. Tools wie GitLab und Gitorious wählen den Namen Merge-Anfrage, da dies die endgültige Aktion ist, die vom Beauftragten angefordert wird. In diesem Artikel werden wir sie als Merge-Anfragen bezeichnen.
Es gibt einen subtilen Unterschied in Bezug auf das Konfliktmanagement. Im Falle von Konflikten führt ein Pull-Request in Github zu einem Merge-Commit im Ziel-Zweig. In Gitlab werden bei einem Konflikt die vorgenommenen Änderungen in einem Merge-Commit im Quell-Zweig vorgenommen.
Siehe https://docs.gitlab.com/ee/user/project/merge_requests/resolve_conflicts.html
"GitLab löst Konflikte, indem ein Merge-Commit im Quellzweig erstellt wird, der nicht automatisch in den Zielzweig gemerged wird. Dadurch kann der Merge-Commit überprüft und getestet werden, bevor die Änderungen gemerged werden, um zu verhindern, dass unbeabsichtigte Änderungen ohne Überprüfung in den Zielzweig gelangen oder den Build brechen."
GitLab 12.1 (Juli 2019) führt eine Änderung ein:
"Merge-Anfragen für vertrauliche Probleme"
Es kann besonders herausfordernd sein, vertrauliche Probleme wie Sicherheitslücken zu diskutieren, zu planen und zu lösen, da das Git-Repository öffentlich ist, insbesondere für Open-Source-Projekte.
Ab Version 12.1 ist es nun möglich, vertrauliche Probleme in einem öffentlichen Projekt innerhalb eines optimierten Workflows mithilfe der Schaltfläche "Vertrauliche Merge-Anfrage erstellen" zu lösen, die es Ihnen ermöglicht, eine Merge-Anfrage in einem privaten Fork des Projekts zu erstellen.
Siehe "Vertrauliche Probleme" from Problem 58583.
In GitHub gibt es eine ähnliche Funktion, jedoch mit der Erstellung eines speziellen privaten Forks namens "Maintainer-Sicherheitsberatung".
GitLab 13.5 (Okt. 2020) wird Reviewer hinzufügen, die bereits vorher für GitHub verfügbar waren: bereits verfügbar für GitHub.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.