Schauen wir uns ihre Bedeutungen nacheinander an ...
On-Zweig-Master Ihre Filiale ist vor 'Herkunft / Master' um 1 Commit. (Verwenden Sie "git push", um Ihre lokalen Commits zu veröffentlichen)
Dies bedeutet, dass Sie etwas lokal festgelegt haben, aber nicht mit dem Ursprung synchronisiert haben.
Lokal: Das Repository, das Sie auf Ihrem Computer geklont haben und an dem Sie gearbeitet haben.
Herkunft: Das Haupt-Repository von , in dem jede Person klonen kann.
Sie sind mitten in einer Sitzung. (Konflikte beheben und dann ausführen "git am --continue") (benutze "git am --skip" um diesen Patch zu überspringen) (benutze "git am --abort", um den ursprünglichen Zweig wiederherzustellen)
Sie waren mitten in der Erstellung eines Patches und hatten Konflikte. Sie müssen entweder die Objekte in den ursprünglichen Zustand zurückversetzen (mit %code% ) oder die Konflikte lösen, indem Sie diese Schritte ausführen.
Überprüfen Sie den Status, wenn Sie Dateinamen sehen, die sagen ( %code% )
Öffnen Sie diese Dateien, lösen Sie die Konflikte, indem Sie das behalten, was Sie wollen, und löschen Sie das, was Sie nicht haben.
Fügen Sie nun die Dateien hinzu, in denen Sie die Konflikte gelöst haben, indem Sie %code%
Jetzt ist es Zeit, die Sitzung fortzusetzen
Falls Sie diesen Patch überspringen möchten, geben Sie
ein %Vor%Sie hatten einige Änderungen und Sie waren mitten in der Herstellung eines Patches es. Änderungen, die beim Commit nicht durchgeführt wurden: (Verwenden Sie "git add ..." zu update was committed wird) (benutze "git checkout - ..." zu Änderungen im Arbeitsverzeichnis verwerfen)
%Vor%Nicht gepackte Dateien: (Verwenden Sie "git add ...", um darin aufzunehmen, was sein wird verpflichtet)
%Vor%Keine Änderungen zum Commit hinzugefügt (verwenden Sie "git add" und / oder "git commit -a")
Hier versucht git, Sie über die Dateien zu informieren, die seit dem letzten Commit geändert wurden. Diejenigen, die alte Dateien waren und du hast nur etwas verändert hier und da drin wird als das modifizierte angezeigt.
Dasjenige, das Sie unter den nicht gepackten Dateien sehen, sind diejenigen, die git früher unbekannt waren, weil sie neue Dateien sind.
Schritte zum Beheben dieses Schritts
1.) Für die nicht verfolgten Dateien
%Vor%2.) Übergeben Sie die hinzugefügten Dateien an das Repository
%Vor%Hinweis
Wie Sie bereits erwähnt haben, arbeiten Sie auch mit einem Review-System (gerrit). Vielleicht möchten Sie einfach einen neuen Patch zu einem vorhandenen Commit hinzufügen und nicht zu einem neuen Commit. Wenn dies der Fall ist, müssen Sie dies tun
%Vor%3.) Jetzt ist es Zeit, den Code zu drücken (wenn Sie möchten)
%Vor%Für gerrit tun Sie dies
%Vor%Wenn ich %code% starte, sehe ich Folgendes:
%Vor%Also, was "dieser Idiot versucht mir zu sagen und was ist der richtige Weg, es zu lösen?
Ich weiß nicht, ob das relevant ist, aber wir verwenden gerrit und alle Änderungen durchlaufen den Überprüfungs- / Genehmigungsprozess.
Konflikte beheben
Führen Sie %code% aus, um zu sehen, ob Sie einen Merge-Marker haben, wie:
%Vor%Falls nicht, versuchen Sie %code% erneut mit der Option %code% : %code%
Wenn Sie zum Beispiel %code% (Windows oder Linux), %code% verwenden. Dadurch wird ein grafisches Tool gestartet, mit dem Sie zwischen lokal, Basis und Remote
wählen können %Vor%
Mit:
Das %code% sollte nur dann ausgeführt werden, wenn git status keine nicht gespeicherten Dateien meldet.
Weitere Informationen finden Sie unter Git Conflict Resolution von Ted Felix : Es hat diese handliche Zusammenfassung:
- Verwenden Sie immer " %code% " mit " %code% ", um sicherzustellen, dass Sie Konfliktmarker erhalten.
- Benutze " %code% " und " %code% ", um herauszufinden, was falsch gelaufen ist.
- Beheben Sie die Konflikte mit einer der folgenden Methoden:
- Bearbeiten Sie jede in Konflikt stehende Datei mit Ihrem bevorzugten Editor.
- " %code% " oder " %code% ".
- " %code% ", um die Konfliktlösung für bestimmte Dateien rückgängig zu machen. (Sei vorsichtig!)
- " %code% " und ein entsprechendes Merge-GUI-Tool wie %code% .
- " %code% " die aufgelösten Dateien.
- " %code% ", um die am. fortzusetzen.
Vergessen Sie bei Git 2.17 (Q2 2018) nicht, Ihre Git-Sitzung mit %code% zu starten, um im Konfliktfall den Pfad zum Bearbeiten besser zu sehen.
Weitere Informationen finden Sie unter " Aktuelle Git Interactive Rebase-Operation anzeigen ".
Was passiert ist, dass eine Datei in der Arbeitsbaumstruktur geändert wurde und eine vorhergehende AM-Sitzung gestartet wurde (AM ist eine Möglichkeit, Patches aus E-Mail-Nachrichten anzuwenden, bei denen E-Mails in Änderungen und Autoreninformationen aufgeteilt und dann als Patch auf das Repository angewendet werden) .
Dies ist dasselbe, als ob Sie die Datei geändert, festgeschrieben und dann versucht hätten, die Änderung in derselben Datei in derselben Zeile basierend auf der alten Version zusammenzuführen. Git weiß einfach nicht, welche Version der Änderung gültig ist und endet daher in %code% state.
Diese Zeilen sagen Ihnen, dass Sie einen Konflikt haben:
%Vor%Es gibt mehrere Möglichkeiten, diese Art von Konflikten zu lösen, und alle sind manuell. Sie benötigen ein 3-Wege-Merge-Tool (kann googeln), mit dem Sie Änderungen vergleichen und das auswählen können, das Sie behalten möchten. %code% editor AFAIK hat dieses Werkzeug eingebettet, aber ich habe es nie benutzt.
Es gibt auch grafische Werkzeuge, mit denen Sie Konflikte in Software wie SourceTree oder ähnlichem lösen können, aber alles hängt davon ab, wo sich das Repository befindet und ob diese grafischen Werkzeuge dort verfügbar sind.
UPD: Sie können diese Änderungen der AM-Sitzung auch rückgängig machen, indem Sie %code% ausführen, das in die Nachricht geschrieben wird. Dadurch wird die Verzweigung in den Status vor Beginn der AM-Sitzung zurückgesetzt, wodurch die Patch-Informationen effektiv gelöscht werden.