Was sind Pull Requests?

Abgeschlossen

Wir beginnen mit:

  • Erläuterung von Branches und deren Wichtigkeit für Pull Requests
  • Definition von Pull Requests
  • Erfahren Sie, wie Sie ein Pull Request erstellen, den Pull Request-Status überprüfen und ein Pull Request zusammenführen.

Branches

Zunächst definieren wir, was Branches sind, warum sie für Entwickler*innen wichtig sind und in welcher Verbindung sie zu Pull Requests stehen.

Branches sind isolierte Arbeitsbereiche, in denen Sie entwickeln können, ohne dass sich dies auf andere im Repository auswirkt. Sie ermöglichen es Ihnen, Features zu entwickeln, Fehler zu beheben und bedenkenlos mit neuen Ideen in einem isolierten Bereich Ihres Repositorys zu experimentieren.

Dass Entwickler*innen an unabhängigen Branches arbeiten, ist zu einem gängigen Konzept in der modernen Softwareentwicklung geworden. Da jeder Entwickler über einen eigenen Branch verfügt, müssen sie sich bei Änderungen (Commits genannt) keine Gedanken über die Auswirkungen auf andere Entwickler machen, die an ihren eigenen Branches arbeiten.

Mergen von Branches

Obwohl es für die individuelle Produktivität vorteilhaft ist, wenn jede*r Entwickler*in an einem separaten Branch arbeitet, entsteht dadurch eine neue Herausforderung. Früher oder später muss jeder Branch der Entwickler*innen in einen gemeinsamen Branch wie main werden. Je größer Projekte werden, desto zahlreicher werden die Merges, und es wird immer wichtiger, jeden Merge nachzuverfolgen und zu überprüfen. Wenn Sie mehrere Änderungen an einem Projekt nachverfolgen müssen, kommen Pull Requests ins Spiel.

Was ist ein Pull Request?

Ein Pull Request ist eine Möglichkeit, Branchänderungen zu dokumentieren und mitzuteilen, dass die Änderungen aus dem Branch des Entwicklers oder der Entwicklerin bereit sind, mit dem Mainbranch (oder Basisbranch) gemergt zu werden. Über Pull Requests können Projektbeteiligte vorgeschlagene Änderungen überprüfen und besprechen, um sicherzustellen, dass die Codequalität im Basisbranch so hoch wie möglich ist.

Eine Pullanforderung vergleicht Änderungen zwischen zwei Verzweigungen:

  • Der Vergleichsbranch ist der eigene Branch des Entwicklers, der die vorgenommenen Änderungen enthält.
  • Der Basisbranch, auch als Mainbranch bezeichnet, ist der Branch, mit dem die Änderungen gemergt werden müssen.

Beim Starten einer Pullanforderung zeigt GitHub automatisch die Verzweigungsvergleichsansicht an.

Erstellen eines Pull Requests

Sehen wir uns nun an, wie ein Pull Request erstellt wird.

  1. Navigieren Sie auf GitHub.com zur Hauptseite des Repositorys.

  2. Wählen Sie im Menü Branch den Branch aus, der Ihre Commits enthält.

    Screenshot des Erstellens eines neuen Branch und dessen Benennung.

  3. Wählen Sie über der Liste der Dateien auf dem gelben Banner die Schaltfläche Vergleich und Pull Request aus, um einen Pull Request für den zugehörigen Branch zu erstellen.

    Screenshot eines gelben Textfelds, in dem die grüne Schaltfläche zum Vergleichen und Abrufen der Anforderung hervorgehoben wird.

  4. Wählen Sie im Dropdownmenü base branch den Branch aus, mit dem Sie Ihre Änderungen mergen möchten. Wählen Sie dann das Dropdownmenü Branch vergleichen aus, um den Branch auszuwählen, in dem Sie Ihre Änderungen vorgenommen haben.

  5. Geben Sie einen Titel und eine Beschreibung für Ihren Pull Request ein.

  6. Um einen Pull Request zu erstellen, der fürs Review bereit ist, wählen Sie die Schaltfläche Create Pull Request aus. Um einen Pull-Request-Entwurf zu erstellen, wählen Sie die Dropdownliste aus und dann Create Draft Pull Request und Draft Pull Request aus.

Pull-Request-Status

Lassen Sie uns nun die verschiedenen Status von Pull Requests überprüfen.

  • Pull-Request-Entwurf: Wenn Sie einen Pull Request erstellen, können Sie entweder einen erstellen, der fürs Review bereit ist, oder einen Entwurf. Ein Pull Request mit dem Status „draft“ kann nicht gemergt werden, und Codebesitzer*innen werden nicht automatisch aufgefordert, Pull-Request-Entwürfe zu überprüfen.

  • Offener Pull Request: Der Status „open“ bedeutet, dass der Pull Request aktiv ist und noch nicht mit dem Basisbranch gemergt wurde. Sie können weiterhin Commits vornehmen und potenzielle Änderungen mit Projektmitarbeiter*innen besprechen und überprüfen.

  • Geschlossener Pull Request: Sie können einen Pull Request schließen, ohne ihn mit dem Basis-/Mainbranch zu mergen. Diese Option ist nützlich, wenn die in der Verzweigung vorgeschlagenen Änderungen nicht mehr benötigt werden oder eine andere Lösung in einer anderen Verzweigung vorgeschlagen wird.

  • Gemergter Pull Request: Der Pull-Request-Status „merged“ bedeutet, dass die Änderungen und Commits aus dem Vergleichsbranch mit dem Basisbranch kombiniert wurden. Jede Person mit Push-Zugriff auf das Repository kann den Merge abschließen.

Zusammenführen eines Pull Requests

  1. Wählen Sie unter Ihrem Repositorynamen Pull requests aus.

    Screenshot der oberen Navigationsleiste eines Repositorys mit hervorgehobener Registerkarte „Pull Request“.

  2. Wählen Sie in der Liste Pull Requests die Pull Requests aus, die Sie mergen möchten.

  3. Scrolle bis zum Ende des Pull Requests. Je nach den Merge-Optionen, die für Dein Repository aktiviert sind, stehen Dir folgende Möglichkeiten zur Verfügung:

    • Mergen Sie alle Commits mit dem Basisbranch, indem Sie die Schaltfläche Merge pull request auswählen. Wenn die Option Merge Pull Request nicht angezeigt wird, wählen Sie im Dropdownmenü „Merge“ aus, wählen Sie die Option Erstellen eines Merge-Commits aus und wählen Sie dann die Schaltfläche Erstellen eines Merge-Commits aus.

      Screenshot des Dropdownmenüs der grünen Pull Request-Schaltfläche mit ausgewähltem Commit zum Erstellen eines Seriendrucks.

    • Durch Squashen und Mergen können Sie alle Ihre Commits zu einem kombinieren. Diese Option hilft, den Repositoryverlauf besser lesbar und organisiert zu halten. Wählen Sie die Option Squash and merge und dann die Schaltfläche Squash and merge aus.

    • Mit der Option Rebase and Merge können Sie Commits ohne Merge-Commit vornehmen. Dadurch wird eine lineare Projekthistorie beibehalten. Wählen Sie das Dropdownmenü „Merge“ aus, und wählen Sie dann die Option Rebase und Merge und schließlich die Schaltfläche Rebase und Merge aus.

  4. Wenn Sie dazu aufgefordert werden, geben Sie eine Commitnachricht ein, oder übernehmen Sie die Standardnachricht.

  5. Wenn Ihrem Konto auf GitHub.com mehrere E-Mail-Adressen zugeordnet sind, wählen Sie das Dropdownmenü „E-Mail-Adresse“ und dann die E-Mail-Adresse aus, die Sie als E-Mail-Adresse für den Git-Ersteller verwenden möchten. In diesem Dropdownmenü werden nur verifizierte E-Mail-Adressen angezeigt. Wenn Sie den Datenschutz für E-Mail-Adressen aktiviert haben, wird eine GitHub-E-Mail ohne Antwort als Standard-E-Mail-Adresse des Commitautors verwendet.

    Screenshot einer Commit-Änderung mit einem Beschreibungsfeld und dem Dropdownmenü der E-Mail, die als Autor des Commits ausgewählt werden soll.

  6. Wählen Sie Merge bestätigen, Squash bestätigen oder Rebase bestätigen und Merge.

  7. Optional können Sie den Vergleichsbranch löschen, um die Liste der Branches in Ihrem Repository übersichtlich zu halten.

Erweiterte Pullanforderungsoptionen

Zusätzlich zum Erstellen und Zusammenführen von Pullanforderungen gibt es einige erweiterte Optionen, mit denen Teams qualitativ hochwertigen Code verwalten können.

Anfordern von Bearbeitern

Sie können bestimmte Mitarbeiter anfordern, um Ihre Pull-Anforderung zu überprüfen. Nur Mitarbeiter mit Schreibzugriff auf das Repository können als Prüfer ausgewählt werden. Dadurch können Sie sicherstellen, dass Ihre Änderungen von den richtigen Personen vor dem Zusammenführen überprüft werden.

  1. Suchen Sie beim Erstellen oder Anzeigen einer Pullanforderung den Abschnitt "Prüfer" in der rechten Randleiste.
  2. Suchen Und wählen Sie die GitHub-Benutzernamen von Mitarbeitern aus, die Schreibzugriff auf das Repository haben.
  3. Die ausgewählten Prüfer erhalten eine Benachrichtigung, um Ihre Pull-Anforderung zu überprüfen.

Erforderliche Überprüfungen und Verzweigungsschutzregeln

Einige Repositorys verwenden Verzweigungsschutzregeln, die Pullanforderungen erfordern, um bestimmte Bedingungen zu erfüllen, bevor sie zusammengeführt werden können. Zu den allgemeinen Anforderungen gehören:

  • Mindestens eine Genehmigung der Rezension von einem anderen Mitarbeiter.
  • Übergeben aller erforderlichen Statusprüfungen, z. B. CI-Workflows (Continuous Integration).

Wenn eine Pullanforderung diese Anforderungen nicht erfüllt, wird die Schaltfläche "Zusammenführen" deaktiviert, bis alle Bedingungen erfüllt sind.

Die erforderlichen Regeln für ein Repository finden Sie unten auf der Pullanforderungsseite unter dem Abschnitt "Zusammenführen".

Diese Regeln werden in der Regel von Repositoryadministratoren in den Branch-Schutzeinstellungen konfiguriert.

Statusprüfungen und kontinuierliche Integration (CI)

Wenn Ihr Repository GitHub-Aktionen oder ein anderes CI-System verwendet, können Pullanforderungen automatisch Statusprüfungen ausführen, wenn Änderungen vorgenommen werden. Beispiele sind:

  • Ausführen von Komponententests
  • Überprüfen der Codeformatierung
  • Überprüfen von Sicherheitsüberprüfungen

Pullanforderungen müssen in der Regel alle erforderlichen Statusprüfungen bestehen, bevor sie mit dem Basiszweig zusammengeführt werden können. Fehlgeschlagene Prüfungen werden direkt auf der Pullanforderungsseite angezeigt.

Speichern von Repositorys mit Sternen

Wenn Sie ein Repository finden, das Sie später problemlos erneut aufrufen möchten, können Sie es auf GitHub sternn . Wenn Sie ein Repository verwenden, wird es in Ihrer persönlichen Liste der Favoriten gespeichert und den Repository-Betreuern Ihre Wertschätzung angezeigt.

So führen Sie ein Repository aus:

  1. Navigieren Sie zur Repositoryseite auf GitHub.com.
  2. Wählen Sie in der oberen rechten Ecke die ⭐ Schaltfläche "Stern " aus.

Sie können alle Repositorys anzeigen, die Sie mit Sternchen versehen haben, indem Sie Ihr Profilbild und dann Ihre Sterne auswählen.

Tastenkombinationen

GitHub bietet viele Tastenkombinationen, mit denen Sie schneller durch Ihre Arbeit navigieren können.

So zeigen Sie alle verfügbaren Tastenkombinationen an:

  • Drücken Sie ? an einer beliebigen Stelle GitHub.com.

Es wird eine Liste der Tastenkombinationen zum Navigieren in Problemen, Pullanforderungen, Repositorys und mehr angezeigt.

Verwenden der Befehlspalette

Die Befehlspalette auf GitHub hilft Ihnen, schnell zu Seiten zu springen, allgemeine Aktionen auszuführen oder Repositorys zu durchsuchen, ohne ihre Hände von der Tastatur zu entfernen.

So öffnen Sie die Befehlspalette:

  • Drücken Ctrl+K Sie (Windows/Linux) oder ⌘+K (Mac).

Sie können mit der Eingabe von Aktionen wie "Pullanforderung erstellen", "Probleme anzeigen" oder "Verzweigung wechseln" beginnen, um sofort an die gewünschte Stelle zu gelangen.

Anwenden, was Sie gelernt haben

Als Nächstes folgt eine Übung, in der Sie das Wiederholte auf ein Praxisbeispiel anwenden.