:Gvdiffsplit! for a vertical 3-way split
left: target branch
center: working copy
right: merge branch
in a 3 way split
:diffget or :do
:diffput or :dp
requires a buff spec (either a name or buff number)
:ls for a buff number (but they'll always be different)
you can also use a sub-string match, if its unique
dp assumes you're going into the working copy so no need to specify anything
target and merge branches always contain //2 and //3 respectively
//2
//<filename>
//3
:diffupdate to fix highlighting
[c prev change set
]c next change set
:Only to "exit vimdiff"
:Gwrite adds the file to the index and closes vimdiff
:Gwrite! to overwrite if its not the working copy