Git Add changes by hunk


Example

You can see what "hunks" of work would be staged for commit using the patch flag:

git add -p

or

git add --patch

This opens an interactive prompt that allows you to look at the diffs and let you decide whether you want to include them or not.

Stage this hunk [y,n,q,a,d,/,s,e,?]?
  • y stage this hunk for the next commit
  • n do not stage this hunk for the next commit
  • q quit; do not stage this hunk or any of the remaining hunks
  • a stage this hunk and all later hunks in the file
  • d do not stage this hunk or any of the later hunks in the file
  • g select a hunk to go to
  • / search for a hunk matching the given regex
  • j leave this hunk undecided, see next undecided hunk
  • J leave this hunk undecided, see next hunk
  • k leave this hunk undecided, see previous undecided hunk
  • K leave this hunk undecided, see previous hunk
  • s split the current hunk into smaller hunks
  • e manually edit the current hunk
  • ? print hunk help

This makes it easy to catch changes which you do not want to commit.

You can also open this via git add --interactive and selecting p.