it-swarm.com.de

Eclipse EGit Checkout-Konflikt mit Dateien: - EGit möchte nicht fortfahren

Ich habe Eclipse EGit gestartet. In einigen Szenarien ist es wirklich nicht umfassend.

Ich habe eine lokale Datei, z. pom.xml wurde geändert. Auf dem git-Server wurde diese Datei geändert. Ich pull, sagt EGIt: 

Checkout-Konflikt mit Dateien: 

das Ziehen stoppt (fetch ist fertig, aber nicht merge), das ist OK. Das nächste ist jedoch eine schlechte Erfahrung.

Ich synchronisiere den Arbeitsbereich, stelle meine Änderungen zur Seite und mache es wie FETCH_HEAD. Aber EGit will nicht weiter machen. Ich ersetze die Datei durch HEAD Revision. EGit will aber trotzdem nicht weiter machen.

Welchen Standardbetrieb sollte der Benutzer nach Konfliktlösung mit EGit erwarten?

AKTUALISIEREN:

Ich added to index, dann kann marked as Merged -> pull immer noch nicht übergeben werden.
Wenn ich Merge auswähle, erhalte ich den Dialog

enter image description here

Ich kann die Datei nicht festschreiben, da sie nicht in der Liste der geänderten Dateien enthalten ist.

39
Paul Verest

Situation:

  • Sie haben lokale nicht festgeschriebene Änderungen 
  • Sie ziehen aus dem Master-Repo 
  • Sie erhalten den Fehler "Checkout-Konflikt mit Dateien: xy"

Lösung:

  • Stellen Sie die Dateien (mindestens) xy bereit
  • Wieder ziehen
  • Wenn Automerge möglich ist, ist alles in Ordnung.
  • Wenn nicht, führt der Pull die Dateien zusammen und fügt die Merge-Konflikt-Marker (<<<<<<, >>>>) .__ ein.
    • Bearbeiten Sie die in Konflikt stehenden Dateien manuell
  • Commit und Push
47
Jojo.Lechelt

So habe ich mein Problem gelöst:

  1. Klicken Sie mit der rechten Maustaste auf den Ordner, der nicht festgeschriebene Änderungen in Ihrem lokalen Ordner enthält
  2. Klicken Sie auf Team> Erweitert> Unverändert annehmen
  3. Pull vom Master.

UPDATE:

Wie Hugo Zuleta richtig hervorgehoben hat, sollten Sie vorsichtig sein, wenn Sie dies anwenden. Er sagt, dass es am Ende sagen könnte, dass der Zweig aktuell ist, aber die Änderungen nicht angezeigt werden, was zu einer Desynchronisierung des Zweigs führt.

28
Burak Karakuş
  1. Nach dem Schließen des Konfliktfehlerdialogs; Klicken Sie im Projekt-Explorer mit der rechten Maustaste auf den Kopf des Projekts -> Team -> Stashes -> Stash Changes
  2. Geben Sie einen Namen für Ihren Vorrat ein. Z.B. "Konflikt"
  3. Versuchen Sie es erneut. Hoffentlich gibt es diesmal keine Fehler.
  4. Erweitern Sie in der Git-Repository-Ansicht Ihr Repository -> Stashed Commits
  5. Klicken Sie mit der rechten Maustaste auf den Stash, den Sie in Schritt 2 erstellt haben -> Angepasste Änderungen übernehmen
  6. Dadurch wird das Zusammenführungswerkzeug aufgerufen, wenn es nicht automatisch zusammengeführt werden kann.
  7. Lösen Sie die Zusammenführungskonflikte in der/den Datei (en) manuell.
  8. Klicken Sie mit der rechten Maustaste auf den Datei-Editor -> Team -> Zum Index hinzufügen
  9. Wenn Sie die Datei nicht festschreiben möchten oder nicht möchten, klicken Sie mit der rechten Maustaste auf den Datei-Editor -> Team -> Aus Index entfernen.
  10. Bereinigung: Klicken Sie in der Git-Repository-Ansicht mit der rechten Maustaste auf den Stash, den Sie in Schritt 2 erstellt haben -> Stashed Commit löschen

Ihre lokale Arbeitsverzeichnisdatei sollte zusammengeführt werden

17
Brock W.

Die richtige Lösung ist die von @ Jojo.Lechelt.

Wenn Sie jedoch aus irgendeinem Grund keinen Commit ausführen und die Änderungen dennoch übernehmen möchten, können Sie die Änderungen an einem anderen Ort speichern, die in Konflikt stehende Datei durch HEAD Revision ersetzen und dann übernehmen.

Später können Sie Ihre Änderungen erneut einfügen und mit HEAD vergleichen und die Änderungen anderer Personen in Ihre Datei übernehmen.

0
Zafar Nasim

Wenn ein Fehler für ".settings/language.settings.xml" oder eine solche Datei auftritt, brauchen Sie nicht zu suchen.

  1. Team -> Commit -> Staged Dateiliste, prüfen, ob unerwünschte Dateien vorhanden sind, -> Klicken Sie mit der rechten Maustaste auf -> Remove from Index.
  2. Überprüfen Sie in der UnStaged-Dateiliste, ob eine unerwünschte Datei vorhanden ist. -> Klicken Sie mit der rechten Maustaste auf -> Ignorieren.

Wenn jetzt die Liste der bereitgestellten Dateien leer ist und die Liste der nicht bereitgestellten Dateien, werden alle Dateien als Ignoriert markiert. Du kannst ziehen. Ansonsten folgen Sie anderen Antworten.

0
Gururaja Hegde

Ich denke, der beste Weg, dies zu tun, ist folgendermaßen:

  1. Speichern Sie alle Ihre Änderungen in einem separaten Zweig.
  2. Führen Sie dann am lokalen Master einen Hard-Reset durch.
  3. Führen Sie anschließend Ihre Änderungen aus dem lokal erstellten Zweig zurück 
  4. Dann begehen Sie und drücken Sie Ihre Änderungen.

So löse ich meine, wann immer es passiert.

0
Pritam Banerjee

Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie [Ersetzen durch] -> Head Revision. Wählen Sie nun Änderungen im aktuellen Zweig ziehen oder Änderungen vom Upstream ziehen.

0

Nachdem Sie die hässliche CheckoutConflictException von Eclipse erhalten haben, ist die Schaltfläche Eclipse-Merge-Tool deaktiviert.

Git muss alle Dateien zum Index hinzufügen, um das Zusammenführen zu ermöglichen.

Um also Ihre Änderungen zusammenzuführen und zu bestätigen, müssen Sie Ihre Dateien zuerst dem Index hinzufügen "Add to Index" und "Commit" ihnen ohne "Push" . Dann sollten Sie in Eclipse eine ausstehende Pull- und eine Push-Anforderung sehen. Sie sehen das in einem Aufwärtspfeil und einem Abwärtspfeil. 

Wenn sich alle Konfliktdateien im Commit befinden, können Sie "ziehen" erneut. Dann sehen Sie so etwas wie:

\ <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<KOP

Dann ändern Sie es entweder mit dem Merge-Tool, das jetzt aktiviert ist, oder führen Sie die Zusammenführung von Hand direkt in der Datei durch. Im letzten Schritt müssen Sie die geänderten Dateien erneut zum Index hinzufügen und "Commit and Push" /.

Überprüfung erfolgt!

0
Mathias Rieder