Es sind 4 Dateien beteiligt:
$LOCAL
Die Datei in dem Zweig, in dem Sie zusammenführen. unberührt vom Zusammenführungsprozess, wenn er Ihnen angezeigt wird
$REMOTE
Die Datei in dem Zweig, von dem aus Sie zusammenführen. unberührt vom Zusammenführungsprozess, wenn er Ihnen angezeigt wird
$BASE
Der gemeinsame Vorfahr von $ LOCAL und $ REMOTE, dh. der Punkt, an dem die beiden Zweige begannen, die betrachtete Datei umzuleiten; unberührt vom Zusammenführungsprozess, wenn er Ihnen angezeigt wird
$MERGED
Die teilweise zusammengeführte Datei mit Konflikten; Dies ist die einzige Datei, die vom Zusammenführungsprozess berührt und Ihnen tatsächlich nie angezeigt wurdemeld
Die $MERGED
Datei ist derjenige, der die enthält <<<<<<
, >>>>>>
, =====
(und vielleicht ||||||
) Marker (das abgrenzen Konflikte). Dies ist die Datei, die Sie manuell bearbeiten , um Konflikte zu korrigieren.
Die manuelle Konfliktbearbeitung und die visuelle Konfliktbearbeitung werden für verschiedene Dateien durchgeführt und mit unterschiedlichen Informationen dargestellt.
Wenn die mergetool mit ( übernehmen meld
), werden die Dateien , die darin sind , sind zu sehen: $LOCAL
, $BASE
, $REMOTE
. Beachten Sie, dass Sie die $MERGED
Datei nicht sehen , obwohl dies als versteckter Parameter übergeben wird meld
, um das Ergebnis der Bearbeitung dort zu schreiben.
Mit anderen Worten, in meld
bearbeiten Sie die Datei in der Mitte, die $BASE
Datei, und Sie wählen alle Änderungen manuell von links oder rechts aus . Es ist eine saubere Datei, die vom Zusammenführungsprozess nicht berührt wird. Der einzige Fehler ist, dass Sie beim Speichern nicht in der $BASE
Datei speichern, sondern im vierten versteckten Parameter von meld
die $MERGED
Datei (die Sie nicht einmal sehen). Die $BASE
Datei ist nicht enthalten keine Konflikte oder teilweise erfolgreich verschmilzt , weil es nicht das ist $MERGED
Datei .
Bei der visuellen Bearbeitung werden bei der Präsentation der $BASE
Datei (anstelle der $MERGED
Datei) git
grundsätzlich alle Versuche verworfen , die Zusammenführung durchzuführen (diese Versuche sind, wenn Sie möchten, in der Datei $ MERGED sichtbar), und Sie können die Zusammenführung vollständig durchführen von Grund auf neu .
Das Fazit ist, dass Sie bei manuellen und visuellen Zusammenführungskonflikten nicht dieselben Dateien betrachten, sondern das Endergebnis in derselben Datei (dh der $MERGED
Datei) geschrieben wird.
Die manuelle Korrektur der Konflikte auf getan , $MERGED
weil git
keine Mittel Sie drei Dateien zu präsentieren, so quetscht sie die Informationen aus den drei Dateien ( $LOCAL
, $BASE
, $REMOTE
) in dieser $MERGED
Datei.
Aber die visuellen Werkzeuge die Mittel haben , um zu zeigen Ihnen drei Dateien: Sie zeigen Ihnen die $LOCAL
, $BASE
, $REMOTE
Dateien. Sie sind Kommissionierung Änderungen aus den $LOCAL
und $REMOTE
Dateien und Sie diese in die bringen $BASE
Datei komplett neu zu bauen und sogar das Überschreiben des gescheiterten Versuch der Zusammenführung das ist die $MERGED
Datei.
merge.conflictstyle
Konfigurationsoptiondiff3
anstelle der Standardeinstellung festgelegt istmerge
.