Skip to content

Instantly share code, notes, and snippets.

@mozfreddyb
Forked from mattratleph/vimdiff.md
Last active December 13, 2022 11:57
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mozfreddyb/1595625e2cdf83a597b2a6b851b9d1c9 to your computer and use it in GitHub Desktop.
Save mozfreddyb/1595625e2cdf83a597b2a6b851b9d1c9 to your computer and use it in GitHub Desktop.
vimdiff cheat sheet

vimdiff cheat sheet

git mergetool

In the middle file (future merged file), you can navigate between conflicts with ]c and [c.

Choose which version you want to keep with :diffget //2 or :diffget //3 (the //2 and //3 are unique identifiers for the target/master copy and the merge/branch copy file names).

:diffupdate (to remove leftover spacing issues)
:only (once you’re done reviewing all conflicts, this shows only the middle/merged file)
:wq (save and quit)
git add .
git commit -m “Merge resolved”

If you were trying to do a git pull when you ran into merge conflicts, type git rebase –continue.

Overview

 _________________
|LOCAL|BASE|REMOTE|
|-----------------|
|_____MERGED______|

(left) LOCAL – this is file from the current branch

(mid) BASE – common ancestor, how file looked before both changes

(right) REMOTE – file you are merging into your branch

(bottom) MERGED – merge result, this is what gets saved in the repo

Let’s assume that we want to keep the change from REMOTE. For that, move to the MERGED file (Ctrl + w, j), move your cursor to a merge conflict area and then:

diffget

:diffget RE

This gets the corresponding change from REMOTE and puts it in MERGED file. You can also:

:diffg RE " get from REMOTE :diffg BA " get from BASE :diffg LO " get from LOCAL

Save the file and quit (a fast way to write and quit multiple files is :wqa).

##vimdiff commands

    ]c :        - next difference
    [c :        - previous difference
    do          - diff obtain
    dp          - diff put
    zo          - open folded text
    zc          - close folded text
    :diffupdate - re-scan the files for differences
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment