Merge-Konflikte
Teil des Abschnitts Versionsverwaltung der Terminal-Journey von Coddy — Lektion 37 von 58.
Wenn beide Branches die gleichen Zeilen derselben Datei geändert haben, kann Git nicht erraten, welche Version beibehalten werden soll. Es pausiert den Merge und bittet dich, eine Entscheidung zu treffen.
Die Datei mit dem Konflikt erhält spezielle Markierungen, die beide Versionen anzeigen:
<<<<<<< HEAD
the version on main
=======
the version on feature
>>>>>>> featureIhre Aufgabe ist es, die Datei manuell zu bearbeiten: Wählen Sie eine Version aus, kombinieren Sie diese oder schreiben Sie etwas Neues. Entfernen Sie anschließend alle Konfliktmarkierungen (die Zeilen mit <<<, ===, >>>).
Sobald die Datei korrekt aussieht, fügen Sie sie dem Staging-Bereich hinzu und schließen Sie den Merge mit einem weiteren Commit ab:
git add notes.txt
git commit -m "Resolve merge conflict in notes"Wenn Sie es sich zwischendurch anders überlegen, können Sie den gesamten Vorgang abbrechen und zum Zustand vor dem Merge zurückkehren:
git merge --abortAufgabe
MittelDer Ordner enthält notes.txt mit der Zeile hello.
Initialisiere das Repo und committe die ursprüngliche Datei. Erstelle einen Branch namens alt, ändere notes.txt so, dass dort hi from alt steht, und committe.
Wechsle zurück zu main, ändere notes.txt so, dass dort hi from main steht, und committe.
Versuche, alt in main zu mergen. Der Merge wird zu einem Konflikt führen. Brich ihn mit git merge --abort ab, gib dann den Inhalt von notes.txt mit cat aus, um zu bestätigen, dass die Datei wieder auf der Version von main ist.
Spickzettel
Wenn beide Branches dieselben Zeilen bearbeiten, pausiert Git den Merge und fügt Konfliktmarker in die Datei ein:
<<<<<<< HEAD
the version on main
=======
the version on feature
>>>>>>> featureBearbeiten Sie die Datei, um das gewünschte Ergebnis zu erzielen, entfernen Sie alle Marker, führen Sie dann ein Staging durch und committen Sie:
git add notes.txt
git commit -m "Resolve merge conflict in notes"Um den Merge abzubrechen und den Zustand vor dem Merge wiederherzustellen:
git merge --abortProbier es selbst
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Versionsverwaltung
2Erste Schritte
Ein Repository initialisierenDer .git-OrdnerIdentität konfigurierenGit StatusZusammenfassung – Erstes Repo5Dateien ignorieren
Warum Dateien ignorierenGitignore-MusterIgnore-Regeln prüfenZusammenfassung – Sauberes Repo3Änderungen nachverfolgen
Die Staging AreaGit AddGit CommitÄndern einer verfolgten DateiGit LogZusammenfassung – Erste Commits6Projekt Rezept-Website
ProjektübersichtInitialisieren und Ignorieren