Vim has a plugin 'fugitive'
Edit: the linked vimcast (comments) is excellent and I recommend it. I would like to add the hint that there will normally not be a need to type :diffget
and :diffput
in longhand, because you can do he same directly in normal/visual mode by pression do and dp.
The best command to start with for this feature appears to be :Gstatus
Vim is a terminal editor (which so happens to have a gui port too)
The fugitive plugin will simply let you edit the index and worktree versions of files alongside each other and let you diffput/diffobtain until you're satisfied. Vim's diff mode is sophisticated, and much more flexible/intuitive than git add --patch
.
- scrollbinding
- syntax highlighting and intra-line (wordlevel) diff highlighting simultaneously
- automatic diff folding (of unchanged regions)
You can get fugitive here
Snippet from :he fugitive
:
Edit a file in the work tree and make some changes. Use |:Gdiff| to open up
the indexed version. Use |do| and |dp| on various hunks to bring the files in
sync, or use |:Gread| to pull in all changes. Write the indexed version to
stage the file.