Einen Konflikt lösen
Teil des Abschnitts Versionsverwaltung der Terminal-Journey von Coddy — Lektion 38 von 58.
Abbrechen ist manchmal der richtige Schritt, aber meistens möchten Sie den Konflikt tatsächlich lösen und den Merge abschließen.
Das Lösen eines Konflikts ist ein Ritual in drei Schritten:
- Öffnen Sie die Datei mit dem Konflikt. Ersetzen Sie den Markierungsblock durch die Version, die Sie behalten möchten (oder eine Kombination).
- Fügen Sie die bereinigte Datei mit
git addzum Index hinzu. - Schließen Sie den Merge mit
git commitab.
Sie können ein Skript verwenden, um die Datei direkt mit dem aufgelösten Inhalt zu überschreiben, was genau das ist, was Sie in dieser Lektion tun werden (kein Editor erforderlich).
Wenn Sie vergessen, git add für die aufgelöste Datei auszuführen, schlägt der Commit fehl und weist Sie darauf hin, dass die Datei immer noch als nicht zusammengeführt (unmerged) markiert ist.
Aufgabe
MittelErzeuge einen Konflikt in notes.txt genau wie in der vorherigen Lektion:
- Initialer Commit auf
mainmit dem Inhalthello - Auf dem Branch
alt: ändere zuhi from alt, committe - Zurück auf
main: ändere zuhi from main, committe - Führe
git merge altaus (es wird einen Konflikt geben)
Löse den Konflikt, indem du notes.txt mit der Zeile hi from both überschreibst. Füge die Datei zum Staging-Bereich hinzu und schließe den Merge mit der Nachricht Resolve notes ab. Gib den finalen Inhalt von notes.txt aus.
Spickzettel
Um einen Merge-Konflikt zu lösen:
- Bearbeiten Sie die betroffene Datei — entfernen Sie die Konfliktmarkierungen und behalten Sie den gewünschten Inhalt.
- Vormerken (Stage) der gelösten Datei:
git add <file> - Schließen Sie den Merge ab:
git commit
git add notes.txt
git commit -m "Resolve conflict"Wenn Sie git add überspringen, schlägt der Commit fehl, da die Datei weiterhin als nicht zusammengeführt (unmerged) markiert ist.
Probier 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 Repo8Merging
Was ist ein MergeFast-Forward-MergeThree-Way-MergeMerge-KonflikteEinen Konflikt lösenRückblick – Merge-Master3Änderungen nachverfolgen
Die Staging AreaGit AddGit CommitÄndern einer verfolgten DateiGit LogZusammenfassung – Erste Commits6Projekt Rezept-Website
ProjektübersichtInitialisieren und Ignorieren