Hacker News new | ask | show | jobs
by u801e 2164 days ago
I actually type my commit messages in a new window in the editor (vim).

  :r !git status -v
Type my commit message above the output, and then visually highlight the lines of my commit message and then run

  :'<,'> !git commit -F -
In fact, if I see an issue with the diff, I can update the relevant file and then run:

  :!git add %
and then go back to the window with the status output, delete it and rerun the status -v command.

In fact, if I want to be more fine grained with the changes I stage in git, I can run:

  :r !git diff
to get the output of the unstaged changes, copy the hunk header lines, paste them above the hunk I want to stage, visually highlight the hunk with the header lines, and then run:

  :'<,'> !git apply --cached -
to stage that hunk. I've even done things like using recountdiff to update the hunk header if I decide to removed added lines or restore deleted lines in a hunk. Personally, I think it's easier than using git add -p or reset -p.