##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
.
##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
@markhu: This was happening to me, too. In my case, it was because my vimrc contained:
autocmd BufWrite *[a-zA-Z0-9_.]* mkview
, which forces a view to be created on every save (buffer write) andautocmd BufRead *[a-zA-Z0-9_.]* silent! loadview
, which tries to load a view on every file open (buffer read). Since vimdiff uses folds and other formatting that gets included in the view, these artifacts appear when opening the file again in vim normally (e.g. vim -o). I resolved this by putting those commands behind a check for vimdiff mode: