Jump to content

Gerrit/Anleitung

From mediawiki.org
This page is a translated version of the page Gerrit/Tutorial and the translation is 100% complete.
Wenn du bereits etwas Erfahrung mit der Befehlszeile und Git hast, nutze stattdessen die kurze Anleitung .

Diese Anleitung erklärt, wie man Git installiert und es verwendet, um Änderungsanfragen in Gerrit zu erstellen und zu bearbeiten.

  • Für Referenzdokumentation zu bestimmten Aufgaben siehe stattdessen Gerrit/Fortgeschrittene Verwendung .
  • Wenn du den Umgang mit Gerrit üben möchtest, ohne einen Patch für ein "echtes" Wikimedia-Softwareprojekt zu schreiben, nutze stattdessen unsere Gerrit-Testinstanz.

In dieser Anleitung beginnen die einzugebenden Befehle mit einem Dollarzeichen in einem Kästchen, etwa so: befehl. Gib nicht das Präfix $ ein.
Wenn ein Befehl auch eine Variable enthält, die du selbst ändern musst, wird diese Variable rot dargestellt: befehl variable.

Was ist Git?

Git ist ein freies und quelloffenes System zur Verwaltung von verteilten Softwareversionen. "Verteilt" in diesen Fall heißt, dass es keine zentrale Kopie des Repositoriums gibt. Sobald du das Repositorium mit Git geklont hast, verfügst du über eine voll funktionsfähige Kopie des Quellcodes, bei der dir sämtliche Branches und getaggte Releases zur Verfügung stehen.

Ein Wikimedia-Entwicklerkonto erstellen

Falls du noch kein Wikimedia-Entwicklerkonto besitzt, erstelle ein Konto. Derselbe Benutzername und dasselbe Passwort werden verwendet, um sich unten bei Gerrit anzumelden.

Git einrichten

Diese Anweisungen erklären, wie du Git als Befehlszeilenwerkzeug (Terminalfenster) installierst. Wenn du eine grafische Benutzeroberfläche (GUI) der Befehlszeile vorziehst, wirf einen Blick auf die Liste der vom Git-Projekt gepflegten Clients. Für alternative Installationsanweisungen siehe die offizielle Dokumentation.

Installation

Befolge Installing Git, um zu erfahren, wie du Git auf deinem Betriebssystem installierst.

Git konfigurieren

Um alle von Git verwendeten Konfigurationsvariablen anzuzeigen, führe git config -l aus.

Nachdem du Git installiert hast, ist es Zeit, deine persönlichen Daten zu konfigurieren. Du solltest es nur einmal tun müssen. Du kannst deine persönlichen Daten auch jederzeit ändern, indem du diese Befehle erneut ausführst.

Git verfolgt, wer den jeweiligen Commit vornimmt, indem es den Namen und die E-Mail-Adresse des Benutzers überprüft. Darüber hinaus werden diese Informationen verwendet, um deine Commits mit deinem Gerrit-Konto zu verknüpfen.

Gib die folgenden Befehle ein und ersetze dabei die Platzhalter nach Bedarf:

  • gerrituser@example.com – Deine eigene E-Mail-Adresse.
  • My Name – Der Name, den Git als Autor deiner Commits speichert. Dies muss nicht mit dem Benutzernamen deines Wikimedia-Entwicklerkontos übereinstimmen.
  • shell_user – Der Shell-Benutzername, den du bei der Erstellung deines Wikimedia-Entwicklerkontos gewählt hast.
  • Gerrituser – Der Benutzername deines Wikimedia-Entwicklerkontos (dieser war früher als "Wikitech"-, "Gerrit"- oder "LDAP"-Benutzername bekannt; dabei handelt es sich um ein und denselben Namen).

git config --global user.email "gerrituser@example.com"

git config --global user.name "My Name"

git config --global url."ssh://shell_user@gerrit.wikimedia.org:29418/".insteadOf "https://gerrit.wikimedia.org/r/"

git config --global gitreview.remote origin

git config --global gitreview.username Gerrituser

Einrichten von SSH-Schlüssel in Gerrit

Wir verwenden einen SSH-Schlüssel, um eine sichere Verbindung zwischen deinem Computer und Gerrit herzustellen. Das Wikimedia-Sicherheitsteam empfiehlt Stand August 2021 Nutzern, die SSH-Schlüssel erstellen, den Typ ed25519 für optimale Sicherheit und Leistung zu verwenden.

Einen SSH-Schlüssel erhalten

Befolge SSH-Schlüssel#Einen neuen SSH-Schlüssel generieren.

Öffentlichen SSH-Schlüssel zu deinem Gerrit-Konto hinzufügen

  • Melde dich auf der Weboberfläche für Gerrit an. Der Benutzername und das Passwort für dein Gerrit sind dieselben wie für dein Wikimedia-Entwicklerkonto.
  • Klicke oben rechts auf deinen Benutzernamen und wähle dann "Settings".
  • Klicke im Menü auf der linken Seite auf "SSH Keys".
  • Füge deinen öffentlichen SSH-Schlüssel in das entsprechende Feld ein und klicke auf "ADD NEW SSH KEY".

Bitte beachte, dass du deinen SSH-Schlüssel in der Gerrit-Weboberfläche unter gerrit.wikimedia.org hinterlegen musst, auch wenn du diesen bereits im Cloud VPS / Toolforge Identitätsmanager unter idm.wikimedia.org hinzugefügt hast. Diese Systeme sind voneinander unabhängig und tauschen keine SSH-Schlüssel aus.

Gerrit-SSH-Verbindung prüfen

Verbinde dich über ssh mit dem Gerrit-Server, um zu überprüfen, ob alles wie erwartet funktioniert. Ersetze shell_user durch deinen Shell-Benutzernamen, wie in deinen Gerrit-Einstellungen angegeben:

ssh -p 29418 shell_user@gerrit.wikimedia.org
  • Achte darauf und vergleiche, ob der "key fingerprint" mit dem SSH-Fingerprint für gerrit.wikimedia.org:29418 übereinstimmt. Wenn er übereinstimmt, antworte mit "Yes" auf die Frage "Are you sure you want to continue connecting?". Gib dann die Passphrase für deinen Schlüssel ein.
  • Du solltest eine Nachricht mit dem Inhalt "Welcome to Gerrit Code Review" erhalten. Die letzte Zeile sollte "Connection to gerrit.wikimedia.org closed" anzeigen.
  • Falls Probleme auftreten, verwende ssh -p 29418 -v shell_user@gerrit.wikimedia.org (ersetze shell_user durch deinen Shell-Benutzernamen). -v liefert ausführliche Ausgaben, um bei der Fehlersuche zu helfen. Lies dann Gerrit-Fehlerbehebung.

Eine Beispielmeldung für eine erfolgreiche Gerrit-SSH-Verbindung sieht folgendermaßen aus:

Beispiel:

Den Code mit Git herunterladen

Sandbox

Wenn du den Umgang mit Gerrit üben möchtest, kannst du das in diesem Tutorial verwendete Repository namens "sandbox" herunterladen (auch "Klonen" genannt).

Führe Folgendes in der Git-Bash-Befehlszeile aus:

git clone https://gerrit.wikimedia.org/r/sandbox

Dadurch werden die gesamte Historie und die Codebasis des Erweiterungs-Repositorys "sandbox" auf deinen Rechner kopiert. Du verfügst über ein Arbeitsverzeichnis des Hauptzweigs der Erweiterung (üblicherweise ebenfalls "git master" genannt). Wechsel in das neue Verzeichnis (über den Befehl cd sandbox). Jetzt kannst du dir den Code ansehen und mit der Bearbeitung beginnen.

Vorhandene Repositorys

Das Klonen des Sandbox-Repositorys liefert dir weder eine Einrichtung der Entwicklungsumgebung noch eine laufende MediaWiki-Installation. (Zum Ausführen wird MediaWiki Core benötigt. Außerdem muss der ausgewählte Code an einem vom Webserver erwarteten Ort abgelegt werden.) Siehe Herunterladen von Git für Informationen zum Herunterladen von MediaWiki Core, Erweiterungen, Skins oder jedem anderen auf gerrit.wikimedia.org von Git gehosteten Projekt-Repository.

Vagrant

Wenn du MediaWiki oder Erweiterungen mithilfe von Vagrant heruntergeladen hast, stelle sicher, dass du Git so konfiguriert hast, dass Code per SSH statt per HTTPS übertragen wird.

Auf die Arbeit mit Gerrit vorbereiten

Hauptseite: Gerrit/git-review

Gerrit verlangt, dass deine Commit-Nachricht eine "Change-ID" enthält. Sie sehen aus wie Change-Id: Ibd3be19ed1a23c8638144b4a1d32f544ca1b5f97, beginnend mit einem I (großes I). Jedes Mal, wenn du einen Commit änderst, um einen bestehenden Patch in Gerrit zu verbessern, bleibt die Change-ID gleich, sodass Gerrit dies als neuen "Patch-Satz" für dieselbe Codeänderung erkennt.

Es gibt ein Git-Add-on namens git-review, das deinen Commits eine Zeile Change-Id hinzufügt. Die Verwendung von git-review wird empfohlen. Es erleichtert das Konfigurieren deines Git-Klons, das Einreichen einer Änderung oder das Abrufen einer vorhandenen Änderung.

git-review installieren

Für weitere Details siehe bitte Gerrit/git-review#Installation.

Linux

Windows

macOS

  • Für OS X 10.11 El Capitan und neuer folge Methode 1.
  • Verwende bei Versionen vor 10.11 das Python-Paketinstallationsprogramm pip, indem du Methode 2 befolgst.

git-review einrichten

Nach dem Herunterladen ("Klonen") eines Repositorys musst du es für git-review einrichten. Dies geschieht automatisch, wenn du zum ersten Mal versuchst, einen Commit zu übermitteln, es ist jedoch im Allgemeinen besser, dies direkt nach dem Klonen zu erledigen. Stelle sicher, dass du dich im Verzeichnis des Projekts befindest, das du geklont hast (andernfalls erhältst du die Fehlermeldung "fatal: Not a git repository"). Führe dann diesen Befehl aus:

git review -s --verbose

Gegen Ende der Ausgabe solltest du etwas Ähnliches wie das Folgende sehen:

Beispiel:

Oder etwas Ähnliches wie dies, wenn du eine neuere Version von git-review verwendest:

Beispiel:

Möglicherweise wirst du nach deinem Git-Benutzernamen gefragt, falls dieser von dem Shell-Benutzernamen abweicht, den du verwendest.

Falls du git-review nicht installieren konntest, kannst du den Gerrit-Patch-Uploader oder Gerrit/Web-Tutorial verwenden, um einen Patch einzureichen.

Standardmäßig verwendet git-review den Branch master. Wenn das Repository, an dem du arbeitest, einen anderen Branch verwendet, z. B. main, musst du die Konfigurationsvariable gitreview.branch setzen. Dies kann mit dem folgenden Befehl erfolgen (wobei main der Name des Branches ist):

git config --add gitreview.branch main

Einen Patch einreichen

Stelle sicher, dass du das gewünschte Code-Repository geklont hast (siehe Den Code mit Git herunterladen oben).

Stelle sicher, dass du dich im Verzeichnis des Code-Repositorys befindest (der Befehl pwd zeigt dir an, wo genau du dich befindest).

Den Hauptentwicklungsbranch aktualisieren

Stelle sicher, dass der Hauptentwicklungsbranch (der Branch, der beim Klonen des Repositorys erstellt wurde) auf dem neuesten Stand ist:

git pull origin master

Beachte jedoch, dass einige Repositorys einen anderen Namen für ihren Hauptentwicklungsbranch verwenden (zum Beispiel main statt master, oder das Repository operations/puppet hat einen production- statt eines master-Branchs).

Einen Branch erstellen

Erstelle zunächst einen lokalen Branch für deine neue Änderung. Ersetze branch-name unten durch einen kurzen, aber aussagekräftigen Namen (z. B. T1234, falls ein entsprechender Phabricator -Task für deine Änderungen existiert, cleanup-something oder badtitle-error). Auch andere Personen werden diesen Namen verwenden, um deinen Branch zu identifizieren.

git checkout -b branch-name origin/master

Beispiel:

Dadurch wird ein neuer Branch (namens branch-name) auf Basis des aktuellen 'master' erstellt und für dich geprüft. Im obigen Beispiel haben wir diesen neuen Branch cleanup-something genannt.

Mache deine Änderungen

Mache Änderungen zu deinen lokalen Code. Verwende deinen bevorzugten Texteditor und bearbeite eine Datei. Im Beispiel unten bearbeiten wir die Datei README.md und fügen ein Wort hinzu.

Schließe anschließend deinen Texteditor und überprüfe die Änderungen, die du seit dem letzten Commit an der/den Datei(en) sowie im Verzeichnis vorgenommen hast:

git diff

Beispiel:

git diff zeigt deine Änderungen im vereinheitlichten Diff-Format an: Entfernte Zeilen sind mit einem Minus (-) und hinzugefügte Zeilen mit einem Plus (+) gekennzeichnet. Diese Änderungen sind noch nicht für den nächsten Commit "bereitgestellt" (über git add).

Bereite deine Änderungen für einen Commit vor

Führe git status aus, um zu entscheiden, welche deiner Änderungen Teil deines Commits werden sollen. Es wird eine Liste aller Dateien angezeigt, die du innerhalb des Verzeichnisses geändert hast. An dieser Stelle wird in der letzten Zeile der Ausgabe "no changes added to commit" angezeigt.

Verwende git add, um deine geänderte(n) Datei(en) Teil deines nächsten Commits werden zu lassen. Im obigen Beispiel haben wir die Datei README.md geändert, daher würde der Befehl wie folgt lauten:

git add README.md Alle von dir geänderten Dateien, die du nicht an git add übergeben hast, werden beim Ausführen von git commit im nächsten Schritt ignoriert.

Du kannst die bereits übergebenen Änderungen jederzeit durch Ausführen von git status überprüfen. Nachdem du git add ausgeführt hast, wird git status die Zeile "no changes added to commit" nicht mehr anzeigen.
Du kannst auch git diff --cached verwenden, um zu sehen, welche Änderungen für den nächsten Commit bereitgestellt sind. Die Ausgabe sieht genauso aus wie bei dem oben genannten Befehl git diff.

Übertrage deine bereitgestellten Änderungen

Sobald du mit der Liste der über git add hinzugefügten Änderungen zufrieden bist, kannst du diese Änderungen in einen Commit in dein lokales Repository umwandeln, durch Verwendung von

git commit

sandbox/.git/COMMIT_EDITMSG:

Anschließend wirst du in deinem Texteditor aufgefordert, eine aussagekräftige Zusammenfassung für deinen Commit hinzuzufügen. Du musst die Richtlinien für Commit-Nachrichten befolgen. Das ist das, was andere sehen werden, wenn sie sich den Änderungsverlauf im Code-Repository ansehen.

Speichere die Commit-Nachricht und schließe deinen Texteditor. Es wird eine Zusammenfassung angezeigt (die Commit-ID, deine Betreffzeile sowie die geänderten Dateien und Zeilen).

Du kannst diesen Schritt beliebig oft wiederholen, bis du einen Satz von Änderungen hast, die du in den Master-Branch übertragen möchtest.

Wenn du git commit ausführst, überträgst du zu deiner lokalen Kopie.

Das bedeutet, dass du so oft übertragen kannst, wie du möchtest, ohne dabei womöglich die Arbeit eines anderen Entwicklers am Projekt zu beeinträchtigen.

Deinen Commit für das Pushen zu Gerrit vorbereiten

Synchronisiere deinen Änderungssatz mit allen Änderungen, die während deiner Arbeit im Master-Branch aufgetreten sein könnten ("Rebasing"). Führe innerhalb deines Branches Folgendes aus:

git pull --rebase origin master
Example:
git pull --rebase origin master ruft neue Commits vom Remote-Repository ab und führt anschließend ein Rebase deiner lokalen Commits darauf durch.

Dadurch werden die in deinem Branch vorgenommenen Änderungen vorübergehend beiseitegelegt, alle im Master-Branch erfolgten Änderungen auf deinen Arbeits-Branch angewendet und anschließend alle deine eigenen Änderungen wieder in den Branch integriert (erneut committet). Dies trägt dazu bei, künftige Merge-Konflikte zu vermeiden.

Außerdem bietet es dir die Möglichkeit, deine Änderungen gegen den aktuellen Code im Master-Branch zu testen.

Jetzt bist du bereit, deinen Code für das Review an Gerrit zu übertragen. Wenn du mehrere zusammengehörige Commits erstellt hast, ziehe in Betracht, diese für das Review zu einem einzigen Commit zusammenzuführen.

Deinen Commit zu Gerrit pushen

Wenn du #Auf die Arbeit mit Gerrit vorbereiten oben befolgt und git-review installiert und git review -s ausgeführt hast, lautet der Befehl zum Pushen von Änderungen an Gerrit:

git review

Example:

Bei Erfolg erhältst du eine Bestätigung sowie einen Link zum Änderungssatz in Gerrit. Im obigen Beispiel lautet dieser Link: https://gerrit.wikimedia.org/r/#/c/sandbox/+/563720

Herzlichen Glückwunsch! Dein Patch ist in Gerrit und wird hoffentlich bald geprüft!

<span id="If_git review_fails">

Wenn git review fehlschlägt

Wenn du beim Ausführen von git review aufgefordert wirst, deinen Benutzernamen und dein Passwort einzugeben, bedeutet dies, dass Git noch nicht für die Verwendung von SSH konfiguriert wurde.

Prüfe die Schritte unter #Git einrichten. Führe insbesondere den folgenden Befehl aus:

git config --global url."ssh://shell_user@gerrit.wikimedia.org:29418/".insteadOf "https://gerrit.wikimedia.org/r/"

Du kannst ihn ruhig noch einmal ausführen, wenn du dir nicht sicher bist, ob du es schon getan hast. Ersetze shell_user durch den Shell-Benutzernamen deines Wikimedia-Entwicklerkontos.

Wenn du Permission denied (publickey). fatal: Could not read from remote repository. erhältst, überprüfe die Anweisungen unter SSH-Schlüssel , um sicherzustellen, dass dein SSH-Agent läuft und deine Identität hinzugefügt wurde. Wenn du deine Git-Bash-Shell schließt, wirst du abgemeldet und musst diese Schritte jedes Mal erneut ausführen.

Änderung anzeigen / Nächste Schritte

Öffne den Link zu deinem Gerrit-Änderungssatz in einem Webbrowser.

Unter "Files" kannst du, nachdem du auf den Pfeil nach unten ganz rechts neben einer beliebigen Datei in der Liste geklickt hast, einen Vergleich deiner Änderungen für die jeweilige Datei sehen: Die alten Zeilen werden rot und die neuen Zeilen grün angezeigt.

Gerrits Vergleich-Algorithmus (jGit) unterscheidet sich geringfügig von Gits Standard-Vergleich-Algorithmus. Die von Gerrit angezeigten Unterschiede sehen möglicherweise anders aus als die von Git auf deinem Rechner angezeigten Unterschiede.

Wenn sich dein Commit auf ein Ticket im Phabricator bezieht, wird automatisch ein Kommentar zum Phabricator-Task hinzugefügt, sofern du die Richtlinien für Commit-Nachrichten befolgt hast. Falls du das nicht getan hast, kannst du entweder deine Commit-Nachricht korrigieren (indem du einen aktualisierten Patchsatz erstellst) oder manuell einen Kommentar zu dem Phabricator-Ticket hinzufügen, der einen Link zu deinem Änderungssatz in Gerrit enthält.

Nachdem dein Code bei Gerrit eingereicht wurde, kannst du mithilfe von Patch Demo eine Live-Demo deiner Änderungen erstellen und diese mit den Reviewern teilen. Das Erstellen einer Live-Demo ist ein optionaler Schritt.

Weitere häufige Situationen

Siehe auch Gerrit/Fortgeschrittene Verwendung, falls dein Fall hier nicht abgedeckt ist.

Mehrere Commits per Rebase zu einem einzigen Commit zusammenfassen

Wenn du mehrere zusammengehörige Commits in deinem lokalen Repository vorgenommen hast, bevor du sie zur Überprüfung einreichen möchtest, solltest du diese Commits zu einem einzigen Commit zusammenfassen (squashen).

Die Option --interactive oder -i ermöglicht es dir, deine Commit-Historie zu ändern (umzuschreiben). Für jeden Commit kannst du die Commit-Nachricht bearbeiten und ändern, Dateien hinzufügen oder entfernen sowie andere Änderungen vornehmen.

Zuerst musst du Git mitteilen, wie weit du zurückgehen möchtest, um Daten abzurufen. Um eine Liste aller Änderungen in deinem Branch zu erhalten:

git rebase -i origin/master

Du kannst die angezeigte Liste der letzten Änderungen auch begrenzen. HEAD~3 bedeutet, die letzten drei Commits abzurufen:

git rebase -i HEAD~3

Nachdem du diesen Befehl eingegeben hast, zeigt dein Texteditor deine Commits in umgekehrter Reihenfolge sowie eine Liste der verfügbaren Befehle an:

Example:

Da wir nur einen einzigen Commit zum Review einreichen wollen, fassen wir die letzten beiden Commits mit dem ersten zusammen. Ändere daher alle außer dem ersten pick in squash:

pick aa8cf1d Adding method customFilterFunctionGetRiskyCountryCodeScore() to GatewayAdapter.
squash 38828e2 Adding $wgDonationInterfaceCustomFiltersFunctionsRiskyCountries to donationinterface.php
squash be33007 Fix a typo

Nachdem du die Auswahl und das Squashing abgeschlossen und die Datei gespeichert hast, öffnet sich eine weitere Datei in deinem Texteditor, in der du deine Commit-Nachrichten bearbeiten und zusammenführen kannst. Achte darauf, nur eine der Change-Id-Zeilen beizubehalten und diese nach einer Leerzeile am Ende der Nachricht zu platzieren.

Die Nachrichten deiner vorherigen Commits werden automatisch in diese Nachricht eingefügt:

Example:

Denk daran, deine (aktualisierte) Zusammenfassungsnachricht in den Commit aufzunehmen. In diesem Fall ist die neue Zusammenfassungsnachricht:

(mingle-fr-2012-69) Adding a custom filter for risky countries.
Hinsichtlich der Frage, welches Change-Id du verwenden möchtest, wenn du einen Commit in einen bestehenden Commit (einen, der sich bereits in Gerrit befindet) squashst, musst du das Change-Id wählen, das zu jenem Commit gehört, für den du ein neues Patchset einreichen willst (also der überlebende Commit). Wenn deine Commits neu sind und sich nicht in Gerrit befinden, spielt es keine Rolle, welche Change-Id du wählst.

Wenn alles gut geht, solltest du eine Meldung über einen erfolgreichen Rebase sehen:

Example:

Reiche anschließend deinen Patch zum Review ein:

git review

Du solltest eine Meldung wie diese sehen, die anzeigt, dass dein Git-Review an Gerrit übermittelt wurde (in diesem Beispiel an https://gerrit.wikimedia.org/r/7187):

Example:

Änderungen anpassen

Manchmal musst du möglicherweise eine bereits eingereichte Änderung anpassen. Du kannst eine Änderung anpassen, solange sie noch nicht zusammengeführt wurde.

Du kannst deine eigenen Änderungen anpassen. Um von jemand anderem eingereichte Änderungen anzupassen, musst du Mitglied der Trusted-Contributors-Gruppe in Gerrit sein. Um Mitglied von Trusted-Contributors zu werden, suche jemanden, der bereits Mitglied ist, und bitte ihn, dich hinzuzufügen. Die Gruppe ist viral, da Mitglieder neue Mitglieder hinzufügen können, nutze deine Befugnisse verantwortungsvoll.

Um eine lokal angepasste Änderung zu bearbeiten, wechsel zunächst zum entsprechenden Branch:

git checkout branch-name

Um eine externe Änderung anzupassen, wähle die Änderung direkt aus:

git review -d changeNumber

... wobei changeNumber das numerische Suffix in der URL deiner Gerrit-Code-Review-Seite ist. Alternativ akzeptiert git review -d die Change-Id, um eine Änderung auszuwählen.

Nimm Änderungen vor und wende bei Bedarf git add an. Übermittle die Änderung als Anpassung:

git commit --amend

Warnung Warnung: Verwende nicht den Parameter -m, um eine Commit-Zusammenfassung anzugeben: dies würde die vorherige Zusammenfassung überschreiben und Change-Id neu generieren.

Pushe die Änderung:

git review

Rebasing (Aktualisierung des Patches zur Einbeziehung anderer Änderungen)

Manchmal möchtest du deinen Patch vielleicht aktualisieren, um alle Änderungen einzubeziehen, die seit der Einreichung im Repository vorgenommen wurden. Dies nennt man "Rebasing". Normalerweise ist das nicht erforderlich, außer der Review-Prozess zieht sich in die Länge und du möchtest sicherstellen, dass deine Änderungen auch mit der neuesten Softwareversion funktionieren, oder Gerrit meldet einen Merge-Konflikt bei deiner Änderung.

Du kannst dies lokal mithilfe des Befehls git rebase und der entsprechenden Optionen erledigen, doch die Weboberfläche von Gerrit bietet hierfür eine komfortablere Möglichkeit.

Im einfachsten Fall klicke einfach auf "Rebase", behalten die Standardauswahl "Rebase on top of the master branch" bei und klicke zur Bestätigung erneut auf "Rebase".

Wenn dein Patch einen Merge-Konflikt hat, erhältst du eine Fehlermeldung. Du kannst dann die Option "Allow rebase with conflicts" aktivieren und es erneut versuchen, wodurch dein Patch um Konfliktmarkierungen ergänzt wird, ähnlich denen, die von Git-Befehlen erzeugt werden. Du musst ihn dann selbst anpassen und die Dateien manuell bearbeiten, um die Konflikte zu beheben.

Manchmal möchtest du deinen Patch vielleicht auch aktualisieren, um Änderungen einzubeziehen, die in einem anderen Patch vorgeschlagen wurden (indem du eine Abhängigkeit von diesem Patch hinzufügst), die jedoch noch nicht zusammengeführt wurden. Wähle in diesem Fall stattdessen "Rebase on a specific change, ref, or commit" aus und gib die Änderung im Eingabefeld an.

Wenn dein Patch bereits eine solche Abhängigkeit hat, erhältst du zudem die Option, "Rebase on top of the master branch (breaks relation chain)" zu wählen, um diese zu entfernen. Du erhältst außerdem die Option, "Rebase all ancestors" auszuwählen, wodurch der Patch zusammen mit der Abhängigkeit rebased wird.

Wenn du den Befehl git rebase verwendest, ist es ratsam, Rebase-Aktualisierungen als separaten Patch vorzunehmen, sodass deine Code-Reviewer leichter erkennen können, welche Änderungen von dir stammen und welche aus anderen Patches resultieren.

Fehlerbehebung

Für Probleme und wie man die behebt, siehe Gerrit/Fehlerbehebung .

Siehe auch

Auch nutzvoll sind diese Seiten:

Third party guides to Git