Es sind 4 Dateien beteiligt:
$LOCALDie Datei in dem Zweig, in dem Sie zusammenführen. unberührt vom Zusammenführungsprozess, wenn er Ihnen angezeigt wird
$REMOTEDie Datei in dem Zweig, von dem aus Sie zusammenführen. unberührt vom Zusammenführungsprozess, wenn er Ihnen angezeigt wird
$BASEDer 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
$MERGEDDie 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 $MERGEDDatei 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 $MERGEDDatei nicht sehen , obwohl dies als versteckter Parameter übergeben wird meld, um das Ergebnis der Bearbeitung dort zu schreiben.
Mit anderen Worten, in meldbearbeiten Sie die Datei in der Mitte, die $BASEDatei, 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 $BASEDatei speichern, sondern im vierten versteckten Parameter von melddie $MERGEDDatei (die Sie nicht einmal sehen). Die $BASEDatei ist nicht enthalten keine Konflikte oder teilweise erfolgreich verschmilzt , weil es nicht das ist $MERGEDDatei .
Bei der visuellen Bearbeitung werden bei der Präsentation der $BASEDatei (anstelle der $MERGEDDatei) gitgrundsä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 $MERGEDDatei) geschrieben wird.
Die manuelle Korrektur der Konflikte auf getan , $MERGEDweil git keine Mittel Sie drei Dateien zu präsentieren, so quetscht sie die Informationen aus den drei Dateien ( $LOCAL, $BASE, $REMOTE) in dieser $MERGEDDatei.
Aber die visuellen Werkzeuge die Mittel haben , um zu zeigen Ihnen drei Dateien: Sie zeigen Ihnen die $LOCAL, $BASE, $REMOTEDateien. Sie sind Kommissionierung Änderungen aus den $LOCALund $REMOTEDateien und Sie diese in die bringen $BASEDatei komplett neu zu bauen und sogar das Überschreiben des gescheiterten Versuch der Zusammenführung das ist die $MERGEDDatei.
merge.conflictstyleKonfigurationsoptiondiff3anstelle der Standardeinstellung festgelegt istmerge.