2016-06-02 26 views
11

Immer, wenn ich eine Rezension an Gerrit schickte und wenn die Überprüfung für einige Zeit ausstehend ist, bekomme ich cannot merge Nachricht in Gerrit.Kann in Gerrit nicht verschmelzen

Ich verstand sein Kommen, weil jemand anderes die gleiche Datei/Dateien geändert und vor mir geliefert hätte. Ich versuche unten eine Problemumgehung, um mein Problem zu lösen.

  1. Aufgabe der aktuellen Überprüfung.
  2. Erstellen Sie eine neue lokale Niederlassung, nehmen Sie einen Zug
  3. Kirsche-Pick aus altem Zweig begeht meine und

Dies funktioniert aber die Überprüfung Kommentare, was ich hätte nicht mehr zur Verfügung gerrit senden und es ist schwierig für meinen Rezensent, um es noch einmal zu überprüfen.

Ich bin auf der Suche nach einer Möglichkeit, cannot merge aus der aktuellen Überprüfung zu entfernen. Vielen Dank!

Antwort

20

Sie müssen die aktuelle Änderung auf Gerrit nicht aufheben, um das Problem "nicht zusammenführen" zu lösen. Alles, was Sie tun müssen, ist:

  1. Aktualisieren Sie Ihr lokales Repository (git holen)
  2. Führen Sie einen manuellen Fütterungsmaterial (git rebase)
  3. die Konflikte lösen (git mergetool)
  4. Commit (Änderung) der Ergebnis (git commit --amend)
  5. Schieben Sie einen neuen Satz von Patches zu Gerrit (git push)
+0

Es hat funktioniert, Danke :) –

+0

Wow, wie können Sie ändern, wenn Sie in der Phase der Fusion sind? – Koshinae

+1

Sie können Ihren Commit so oft ändern, wie Sie benötigen, bevor die Änderung gesendet wird. Weitere Informationen finden Sie unter: https://gerrit-review.googlesource.com/Documentation/intro-quick.html –

2

Die beste Vorgehensweise beim Arbeiten an einer gemeinsamen Codebasis mit git/gerrit ist , um die Änderungen auf ein Minimum zu beschränken. Auf der einen Seite, auf diese Weise, die Chance, dass jemand seine Änderungen zusammenführt, bevor Sie senkt. Auf der anderen Seite könnten Sie so bald wie möglich Rebase so dass die Änderungen leichter überprüft werden können.

Ich bin nicht sicher, dass dies Ihre Frage beantwortet, aber ich befolge diese beiden Regeln und habe keine Probleme.

+0

Wie kann ich Änderungen auf ein Minimum beschränken? –

+2

Für mich, Änderungen an Minimum zu behalten bezieht sich darauf, Refactoring-Code nicht mit neuem Code zu mischen und Commits nach Scope zu teilen, wie: Refactor-Commit, Implementierungs-Commit, Testing-Commit (meistens für Test-Coverage-Erhöhung), Dependency-Upgrade-Commit und so weiter. Eine andere Sache ist, dass ich versuche, das Commit so isoliert wie möglich zu halten (nur die Funktionalität und Tests) – Timotei

4

rebase Taste Versuchen, das können die meisten lösen können nicht-Merge ist verklagt. Wenn es das richtige Commit zum selbstständigen Rebase findet, ist es in Ordnung. Wenn dies nicht möglich ist, suchen Sie das letzte Commit des Zielzweiges und füllen Sie das Commit-Feld leer aus. Manchmal sollte man zuerst das Commit einreichen, auf dem das nicht zusammengeführt werden kann. Wenn es nicht funktionieren kann, verlasse es einfach und mache das Commit basierend auf dem letzten Commit.