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
Ich kann die Datei nicht festschreiben, da sie nicht in der Liste der geänderten Dateien enthalten ist.
Situation:
Lösung:
So habe ich mein Problem gelöst:
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.
Ihre lokale Arbeitsverzeichnisdatei sollte zusammengeführt werden
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.
Wenn ein Fehler für ".settings/language.settings.xml" oder eine solche Datei auftritt, brauchen Sie nicht zu suchen.
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.
Ich denke, der beste Weg, dies zu tun, ist folgendermaßen:
So löse ich meine, wann immer es passiert.
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.
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!