Pull Request
Was ist ein Pull Request?
Ein Pull Request ist ein Vorgang, der in Versionsverwaltungssystemen (git) verwendet wird, um Änderungen an einem Repository vorzuschlagen und zur Überprüfung durch andere Entwickler bereitzustellen.
Wozu dienen Pull Requests?
Pull Requests dienen der Qualitätssicherung.
Der Pull Request dient als Mechanismus, um Änderungen im Code einer Software zur Überprüfung bereitzustellen. Andere Entwickler können den vorgeschlagenen Code prüfen, Kommentare abgeben und Verbesserungsvorschläge machen.
Ein Pull Request in GitHub
So sieht ein offener Pull Request in Github auf.
Er listet die wichtigsten Informationen auf:
Wer die Änderung einbringt (der Ersteller)
Wer die Änderung prüft (der Reviewer)
Welcher Branch gemerged werden soll
Welche Änderungen vorgenommen werden sollen
In diesem Pull Request sind keine Pipelines ausgeführt worden
Der Prozess eines Pull Requests
Branch erstellen
Der Entwickler erstellt einen neuen Branch basierend auf dem Hauptentwicklungsstrang (meistens "master" oder "main") des Repositories. Auf diesem Branch werden die Änderungen vorgenommen.Änderungen vornehmen
Der Entwickler führt die gewünschten Änderungen am Code durch, um beispielsweise Fehler zu beheben, neue Funktionen hinzuzufügen oder Code zu optimieren.Pull Request erstellen
Der Entwickler reicht den Pull Request ein, indem er den geänderten Branch mit dem Hauptentwicklungsstrang des Repositories vergleicht. Dabei werden die vorgeschlagenen Änderungen deutlich gemacht.Überprüfung und Diskussion
Andere Entwickler können den Pull Request öffnen, den Code prüfen und Kommentare, Vorschläge oder Fragen dazu abgeben. Es findet ein iterativer Prozess der Überprüfung und Diskussion statt.Zusammenführen (Merge) des Pull Requests
Nach Abschluss der Überprüfung und Diskussion entscheidet der verantwortliche Maintainer oder das Entwicklungsteam, ob der Pull Request akzeptiert und der Code mit dem Hauptentwicklungsstrang zusammengeführt wird.Aktualisierung des Repositorys
Nach dem erfolgreichen Zusammenführen des Pull Requests werden die Änderungen im Hauptentwicklungsstrang des Repositories wirksam.
Der Unterschied zwischen Pull Requests und Merge Requests
Pull Requests und Merge Requests sind verschiedene Namen für den gleichen Prozess: das Einreichen von Änderungen an Code in einem Repository.
Der Hauptunterschied besteht daran, dass Pull Requests verwendet werden wenn man eine Änderung an einem fremden Repo vornehmen will, bspw. wenn man zu einem Open-Source Repo beitragen möchte.
Wenn ein internes Team Änderungen an ihrem Produkt macht, sind das Merge Requests weil alle Entwickler am selben Repo arbeiten und der Merge innerhalb des Repos stattfindet.