Warum git mergetool öffnet 4 windows in "vimdiff" betrachten? (Ich würde erwarten, 3)
Wenn ich traf ein Konflikt, ich habe git-mergetool
um es zu lösen. Ich tippte:
>git mergetool -t vimdiff
Öffnete vimdiff
4-Wege, nicht 3-Wege. Meine geteilten Fenstern in vimdiff Aussehen:
:ls
1 #a "Gemfile.lock" line 1
2 %a "Gemfile.lock.LOCAL.4828.lock" line 1
3 a "Gemfile.lock.BASE.4828.lock" line 0
4 a "Gemfile.lock.REMOTE.4828.lock" line 0
Was sind Sie? Ich möchte ein 3-Wege-diff: target-Datei, merge-Datei und Arbeits-Datei. Wie sollte ich konfigurieren mein git oder "vimdiff" betrachten?
- Niemand scheint diese darauf hingewiesen haben: Sie müssen vier windows zum ausführen eines 3-Wege-diff-wenn Sie möchten, dass das merge-Ergebnis-Fenster zu zeigen. In anderen Worten, Sie erhalten ein diff zwischen der BASIS, den LOKALEN und REMOTE - (3 Fenster), und die Möglichkeit zum Bearbeiten der daraus resultierenden merge (4. Fenster).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als alternative, haben Sie sich Gedanken über die Verwendung Flüchtling?
Es ist eine ausgezeichnete vimcast, Flucht.vim - auflösen von merge-Konflikten mit "vimdiff" betrachten, von Drew Neil. Dies ist ein Teil der Serie auf der Flucht.
Den Vimcasts website ist ein guter Ort, um zu lernen mehr über vim.
Verwenden Flüchtling, wie Sie mergetool können Sie die folgenden verwenden.
Hinweis: Sie möglicherweise ändern möchten
vim
zumvim
odergvim
.Flüchtling hat eine Menge mehr zu bieten, als nur ein merge-tool-Skript, so stellen Sie sicher, dass Sie die Dokumentation Lesen und/oder schauen Sie sich die vimcasts.
git-mergetool
?? Es sagt mir, öffnen Sie die Konflikt-Datei, und nennen:Gdiff
.Nach viel Forschung für die Erteilung mergetool mit "vimdiff" betrachten und nur 3 Fenster, ich kam mit dieser Konfiguration, die mir erlaubt zu wählen, wenn ich möchte 3 windows-oder die Standard-4 windows:
Jetzt können Sie beginnen, 3 Fenster einfach eingeben:
Und der Standard (4 Fenster) werden immer noch wie erwartet funktioniert mit:
Auch, würde Sie wahrscheinlich mögen, fügen Sie diese Zeilen am Ende Ihrer
~/.vimrc
oder/etc/vim/vimrc
Wird diese Verknüpfungen erstellen, wie
,1
greifen von Links,,3
greifen von rechts (in beiden Modi) und auch,2
zu greifen, von der Basis (Mitte Fenster) in die 4-Fenster-Modus.Dass hilft viel!
Meine
~/.gitconfig
- Datei sieht wie folgt aus:Ich hoffe das hilft Euch (und die, die man hier).
Ändern ein bisschen die Befehle aus auf dieser Seite:
Und dann den Befehl ausführen:
git mergetool
.Hinweis: ich benutze Flüchtling auch und kann es nur wärmstens empfehlen.
Hinweis: Sie können nur 3 Windows, wie beschrieben, in Dr. Beco's Antwort
(
vim -d -c "wincmd l" "$LOCAL" "$MERGED" "$REMOTE"'
),die 4-Fenster-Modus ist erweitert mit git 2.8 (März 2016)
Sehen commit 2300328 (29 Jan 2016) von Dickson Wong (
diwo
).(Zusammengefasst von Junio C Hamano --
gitster
-- in commit 82c17b7, 17 Feb 2016)Intern, git jetzt:
statt:
Werde ich die zweite Flüchtling Empfehlung.
Könnte man auch versuchen, aus splice.vim. Es ist ein Vim-plugin dient als ein git-oder mercurial mergetool drop-in-Ersatz. Es ermöglicht Ihnen die einfache shuffle verschiedenen sichten auf den Konflikt. Es ist auch sehr schnell, unkompliziert und macht einen guten job zu machen, Zusammenführen von intuitiver. Hier ist ein screencast.
Die Dateien, die Sie aufgeführt habe, sind:
Hoffe, das hilft.