___ answer28979773 ___

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.

  1. Geben Sie %code%
  2. ein
  3. Überprüfen Sie den Status, wenn Sie Dateinamen sehen, die sagen ( %code% )

  4. Ö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.

  5. Fügen Sie nun die Dateien hinzu, in denen Sie die Konflikte gelöst haben, indem Sie %code%

  6. eingeben
  7. Jetzt ist es Zeit, die Sitzung fortzusetzen

  8. Geben Sie %code% ein

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%     
___ qstntxt ___

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 und alle Änderungen durchlaufen den Überprüfungs- / Genehmigungsprozess.

    
___ tag123git ___ Git ist ein Open-Source-Versionskontrollsystem (DVCS). Verwenden Sie dieses Tag für Fragen zur Verwendung von Git und Workflows. Verwenden Sie dieses Tag nicht für allgemeine Programmierfragen, die ein Git-Repository betreffen. ___ tag123gerrit ___ Gerrit ist ein webbasierter Code Review und Projektmanagement für Git basierte Projekte. Was bedeutet "Du bist mitten in einer Sitzung"? ___ answer28936716 ___
  

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:

  • %code% : Eine temporäre Datei, die den Inhalt der Datei im aktuellen Zweig enthält.
  • %code% : Eine temporäre Datei, die die gemeinsame Basis für die Zusammenführung enthält.
  • %code% : Eine temporäre Datei, die den Inhalt der Datei enthält, die zusammengeführt werden soll.
  • %code% : Die Datei mit den Konfliktmarkierungen.

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:

  
  1. Verwenden Sie immer " %code% " mit " %code% ", um sicherzustellen, dass Sie Konfliktmarker erhalten.
  2.   
  3. Benutze " %code% " und " %code% ", um herauszufinden, was falsch gelaufen ist.
  4.   
  5. 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% .
    •   
  6.   
  7. " %code% " die aufgelösten Dateien.
  8.   
  9. " %code% ", um die am. fortzusetzen.
  10.   

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 ".

    
___ answer28935426 ___

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.

    
___

8

Wenn ich git status 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 und alle Änderungen durchlaufen den Überprüfungs- / Genehmigungsprozess.

    
ozbek 05.03.2015, 10:36
quelle

3 Antworten

5
  

Konflikte beheben

Führen Sie git diff aus, um zu sehen, ob Sie einen Merge-Marker haben, wie:

%Vor%

Falls nicht, versuchen Sie git am erneut mit der Option -3 : git am -3

Wenn Sie zum Beispiel kdiff3 (Windows oder Linux), git mergetool --tool=kdiff3 verwenden. Dadurch wird ein grafisches Tool gestartet, mit dem Sie zwischen lokal, Basis und Remote

wählen können %Vor%

Mit:

  • LOCAL : Eine temporäre Datei, die den Inhalt der Datei im aktuellen Zweig enthält.
  • BASE : Eine temporäre Datei, die die gemeinsame Basis für die Zusammenführung enthält.
  • REMOTE : Eine temporäre Datei, die den Inhalt der Datei enthält, die zusammengeführt werden soll.
  • MERGED : Die Datei mit den Konfliktmarkierungen.

Das git am --continue 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:

  
  1. Verwenden Sie immer " -3 " mit " git am ", um sicherzustellen, dass Sie Konfliktmarker erhalten.
  2.   
  3. Benutze " git status " und " git diff ", um herauszufinden, was falsch gelaufen ist.
  4.   
  5. Beheben Sie die Konflikte mit einer der folgenden Methoden:      
    • Bearbeiten Sie jede in Konflikt stehende Datei mit Ihrem bevorzugten Editor.
    •   
    • " git checkout --theirs " oder " git checkout --ours ".
    •   
    • " git checkout -m ", um die Konfliktlösung für bestimmte Dateien rückgängig zu machen. (Sei vorsichtig!)
    •   
    • " git mergetool " und ein entsprechendes Merge-GUI-Tool wie kdiff3 .
    •   
  6.   
  7. " git add " die aufgelösten Dateien.
  8.   
  9. " git am --continue ", um die am. fortzusetzen.
  10.   

Vergessen Sie bei Git 2.17 (Q2 2018) nicht, Ihre Git-Sitzung mit git am --show-current-patch zu starten, um im Konfliktfall den Pfad zum Bearbeiten besser zu sehen.
Weitere Informationen finden Sie unter " Aktuelle Git Interactive Rebase-Operation anzeigen ".

    
VonC 09.03.2015, 07:06
quelle
1

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 conflict 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. vim 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 git am --abort 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.

    
AlexKey 09.03.2015 04:48
quelle
1

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 git am --abort ) oder die Konflikte lösen, indem Sie diese Schritte ausführen.

  1. Geben Sie git status
  2. ein
  3. Überprüfen Sie den Status, wenn Sie Dateinamen sehen, die sagen ( both modified )

  4. Ö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.

  5. Fügen Sie nun die Dateien hinzu, in denen Sie die Konflikte gelöst haben, indem Sie git add file1 file2

  6. eingeben
  7. Jetzt ist es Zeit, die Sitzung fortzusetzen

  8. Geben Sie git am --continue ein

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%     
cafebabe1991 11.03.2015 06:11
quelle

Tags und Links