Meld als Difftool und Mergetool für Git einrichten
In diesem Artikel wird die Konfiguration von Meld als Git-Standardtools zum diff
und merge
erläutert. Meld ist ein großartiges GUI-diff
-Programm, das es uns erleichtert, Dateiänderungen zu überprüfen und Ergebnisse zusammenzuführen.
Der erste Schritt ist immer das Herunterladen und Installieren des Programms. Wenn Sie fertig sind, folgen Sie unserem Beispiel.
Meld als Standard-Git Difftool
konfigurieren
Um Git für die Verwendung von Meld als difftool
zu konfigurieren, müssen wir Änderungen an unserer .gitconfig
-Datei vornehmen. Wir werden die folgenden Zeilen zu unserer .gitconfig
-Datei hinzufügen.
[diff]
tool = meld
[difftool]
prompt = false
[difftool "meld"]
cmd = meld "$LOCAL" "$REMOTE"
Die Reihenfolge wird durch die Reihenfolge der Argumente $LOCAL
und $REMOTE
bestimmt. In unserem Fall befindet sich $LOCAL
, unsere Originaldatei, auf der linken Seite und $REMOTE
ist die modifizierte Datei auf der rechten Seite.
Wenn Sie es umgekehrt möchten, verwenden Sie stattdessen dies.
cmd = meld "$REMOTE" "$LOCAL"
Der Teil prompt = false
weist Git an, nicht nach einer Bestätigung für das Starttool zu fragen, was es standardmäßig tut.
Wir können den Befehl git difftool
als Befehl git diff
ausführen.
$ git difftool <BranchName> file_name
Konfigurieren Sie Meld als Standard-Git Mergetool
Meld erleichtert auch das Lösen von Konflikten während des Zusammenführens dank ihres GUI mergetool
. Auch hier werden wir unsere .gitconfig
-Datei ändern, um Meld als mergetool
für Git zu konfigurieren.
Fügen Sie die folgenden Zeilen zu Ihrer .gitconfig
-Datei hinzu.
[merge]
tool = meld
[mergetool "meld"]
# Choose one of these 2 lines
cmd = meld "$LOCAL" "$MERGED" "$REMOTE" --output "$MERGED"
cmd = meld "$LOCAL" "$BASE" "$REMOTE" --output "$MERGED"
Wenn wir Merge-Konflikte haben, können wir Meld als unser mergetool
verwenden, indem wir den folgenden Befehl ausführen.
$ git mergetool
Werfen wir einen kurzen Blick auf die obigen Parameter.
$LOCAL
- Dies ist die Datei in unserem ausgecheckten Zweig.$REMOTE
– Dies ist die Datei in dem Zweig, den wir zusammenzuführen versuchen.$MERGED
– Dies ist die Datei mit den Zusammenführungskonflikten.$BASE
– Dies ist die Originaldatei, wenn die Verzweigung mit$REMOTE
erstellt wird.
$LOCAL
und $REMOTE
stehen links und rechts, abhängig von Ihrer Reihenfolge im cmd
, und Sie können entweder $BASE
oder $MERGED
in der Mitte haben. Meld ermöglicht eine 3-Wege-Ansicht, und wir sollten die mittlere Datei bearbeiten, um die Konflikte zu lösen.
Nach der Bearbeitung können wir das Programm schließen und Git aktualisiert die Datei automatisch. An diesem Punkt sind wir bereit, die Änderungen zu übernehmen und die Zusammenführung abzuschließen.
Alternativ können wir einige Befehle auf der Bash ausführen, um unsere .gitconfig
-Datei zu aktualisieren.
Führen Sie für Windows-Benutzer diese Befehle aus.
$ git config --global diff.tool meld
$ git config --global difftool.meld.path "C:\Program Files (x86)\Meld\Meld.exe"
$ git config --global difftool.prompt false
$ git config --global merge.tool meld
$ git config --global mergetool.meld.path "C:\Program Files (x86)\Meld\Meld.exe"
$ git config --global mergetool.prompt false
Stellen Sie sicher, dass Sie den richtigen Pfad zu Ihrer MELD.exe
-Datei eingeben.
Linux-Benutzer können die folgenden Befehle verwenden, um ihre .gitconfig
-Datei zu aktualisieren.
$ git config --global diff.tool meld
$ git config --global difftool.meld.path "/usr/bin/meld"
$ git config --global difftool.prompt false
$ git config --global merge.tool meld
$ git config --global mergetool.meld.path "/usr/bin/meld"
$ git config --global mergetool.prompt false
Aktualisieren Sie den obigen Code mit dem richtigen Installationspfad auf Ihrem Computer.
Kurz gesagt, die ursprünglichen Schnittstellen diff
und merge
von Git sind unattraktiv. Wir können Git jedoch so konfigurieren, dass Meld als Standard-GUI difftool
und mergetool
verwendet wird.
Alles, was Sie tun müssen, ist, Ihre .gitconfig
-Datei zu aktualisieren, indem Sie die obigen Schritte ausführen.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn