I often use git add --patch
to interactively stage changes for a commit.
Git takes me through changes to tracked files piece by piece to check if I
want to stage them. This same interactive staging of files can be used in
reverse when removing changes from the index. Just add the --patch
flag.
You can use it for a single file
$ git reset --patch README.md
or you can let it operate on the entire repository
$ git reset --patch
This is useful when you've staged part of a file for a commit and then realize that some of those changes shouldn't be committed.