Text-Merge
Ein Text-Merge kombiniert Aenderungen aus zwei Versionen einer Datei zu einem einzigen bearbeitbaren Ergebnis. Ein Konflikt entsteht, wenn zwei Aenderungen nicht miteinander vereinbar sind und eine Entscheidung noetig wird.
Layout
Dieser Bildschirm zeigt drei Versionen derselben Datei.
- Der linke Bereich ist Ihre Version mit lokalen Aenderungen.
- Der mittlere Bereich ist das Ergebnis. Nur dieser Bereich ist bearbeitbar.
- Der rechte Bereich ist die eingehende Version mit Remote-Aenderungen.
Es gibt zwei Merge-Layouts:
- Merge mit Einfuegeluecken haelt die drei Bereiche mit expliziten Lueckenzeilen ausgerichtet.
- Merge mit Verbindern verwendet Verbindungsspalten, um zu zeigen, wie zusammengehoerige Aenderungen zwischen den Bereichen zugeordnet sind.
Zum Umschalten verwenden Sie das Menue Darstellung oder die segmentierte Steuerung oben rechts.
Basis
Es gibt noch eine vierte Version: die Basis. Das ist die urspruengliche Version, von der beide Seiten ausgegangen sind. Das entspricht dem Drei-Wege-Merge-Modell von Git:
Local → Base ← Remote
↓
Result
In ABDiff kann der mittlere Bereich zwischen Ergebnis und Basis umschalten, damit Sie besser verstehen, was sich geaendert hat.
Was ist ein Konflikt?
Ein Konflikt entsteht, wenn beide Seiten dieselben Zeilen unterschiedlich aendern. Zum Beispiel war der urspruengliche Wert “blue”, jetzt sagt eine Seite “green” und die andere “red”. Git kann nicht entscheiden, welche Aenderung korrekt ist, und verlangt deshalb eine manuelle Aufloesung.
Das passiert, wenn zwei Personen dieselben Zeilen gleichzeitig bearbeiten. Ueberschneiden sich die Aenderungen nicht, fuehrt Git sie automatisch zusammen. Ueberschneiden sie sich doch, muessen Sie den Konflikt manuell aufloesen.
Einen Konflikt aufloesen
Wenn Sie Git konfiguriert haben, startet ABDiff, sobald Git einen Konflikt findet. Der Ergebnisbereich bleibt ungeloest, und Ihre Aufgabe ist es, seinen Inhalt festzulegen. Sie haben drei Moeglichkeiten:
- Mit der lokalen Version aufloesen
- Mit der eingehenden Version aufloesen
- Ein eigenes Ergebnis schreiben
- Bearbeiten Sie die ausgewaehlte Zeile (Eingabe oder Doppelklick)
- Oder kopieren Sie Zeilen von einer der beiden Seiten: Rechtsklick ▸ Auswahl ins Ergebnis kopieren (⌘→ / ⌘←)
Tipps:
- Erweitern Sie die Auswahl (⇧↑ / ⇧↓), um mehrere Zeilen auf einmal zu kopieren.
- Mit ⌘Z koennen Sie jede Aenderung rueckgaengig machen.
Als geloest markieren
Wenn Sie fertig sind, speichern Sie die Datei (Datei ▸ Sichern oder ⌘S). Damit teilt ABDiff Git mit, dass der Konflikt geloest wurde.
Wenn Sie den Konflikt nicht aufloesen moechten, schliessen Sie die Datei einfach ohne zu sichern.
Bearbeiten und Navigation
Navigation
| Aktion | Tastaturkuerzel |
|---|---|
| Vorherige / naechste Zeile | ↑ / ↓ |
| Vorheriger / naechster Bereich | ← / → |
| Zur ersten / letzten Zeile springen | ⌘↑ / ⌘↓ |
| Vorherige / naechste Aenderung | ⌥↑ / ⌥↓ |
| Vorheriger / naechster Hunk | ⌥↑ / ⌥↓ |
| Zu einem anderen Bereich wechseln | ⇥ |
Kopieren
| Aktion | Tastaturkuerzel |
|---|---|
| Auswahl ins Ergebnis kopieren | ⌘← ⌘→ |
| Auswahl erweitern | ⇧↑ / ⇧↓ |
| Mit unserer / deren Version aufloesen | ⇧⌘→ / ⇧⌘← |
Eine ausgewaehlte Zeile wird mit einem grauen Rechteck angezeigt. Ein Hunk ist ein zusammenhaengender Konflikt- oder Aenderungsblock. Kopieraktionen sind nur aktiviert, wenn sie den Ergebnisbereich veraendern wuerden und wenn die Auswahl auf einer echten Zeile liegt. Ein Umschalt-Klick auf eine Zeile erweitert ausserdem die aktuelle Auswahl innerhalb desselben Bereichs.
So kopieren Sie Aenderungen:
- Verwenden Sie Kopieren, um die aktuell ausgewaehlten Zeilen zu kopieren.
- Verwenden Sie Gesamten Hunk kopieren, um den Block zu kopieren, in dem sich die ausgewaehlte Zeile befindet.
- Ein Rechtsklick innerhalb der aktuellen Auswahl behaelt die Auswahl bei; ein Rechtsklick ausserhalb waehlt zuerst diese Zeile aus.
- Das Zeilen-Kontextmenue bietet ausserdem Auswahl nach oben erweitern / Auswahl nach unten erweitern, wenn diese Umschalt-Pfeil-Bewegungen verfuegbar sind.
- Verwenden Sie Aufloesen mit fuer die ausgewaehlte Zeile, entweder ueber den Rechtsklick auf eine Zeile oder ueber Bearbeiten ▸ Aufloesen mit.
Alle Kopieraktionen lassen sich mit ⌘Z rueckgaengig machen.
Bearbeiten
| Aktion | Tastaturkuerzel |
|---|---|
| Bearbeitung der ausgewaehlten Ergebniszeile starten | Return |
| Bearbeitung einer Ergebniszeile direkt starten | Zeile doppelklicken |
| Bestaetigen und zur naechsten bearbeitbaren Zeile wechseln | Return (waehrend der Bearbeitung) |
| Bestaetigen und den Bearbeitungsmodus verlassen | Command-Return |
| Aktuellen Zeilenpuffer verwerfen und den Bearbeitungsmodus verlassen | Esc oder Command-. |
Die Bearbeitung kann auch per Doppelklick mit der Maus gestartet werden. Alle Bearbeitungsaktionen lassen sich mit ⌘Z rueckgaengig machen.
Ansichtsoptionen
Text-Merge bietet Optionen, die die Berechnung oder Darstellung des Vergleichs veraendern. Diese Optionen finden Sie im Optionsmenue.
- Ignoriermuster reduzieren stoerende Unterschiede. Siehe Ignoriermuster.
- JSON-Normalisierung wandelt die Eingabe in eine kanonische Form um, damit der Vergleich semantisch aussagekräftig wird. Wenn Sie eine normalisierte Datei speichern, wird die Eingabedatei im normalisierten Format neu geschrieben.