On Wed, 2 Nov 2016 14:46:04 +0100 (CET) Jan Engelhardt <jeng...@inai.de> wrote:
> Current version: 2.10.2 > Example workflow: > > * I would do a global substitution across a source tree, e.g. `perl > -i -pe 's{OLD_FOO\(x\)}{NEW_BAR(x, 0)}' *.c` > * Using `git add -p`, I would verify each of the substitutions that > they make sense in their respective locations, and, based on that, > answer "y" or "n" to the interactive prompting to stage good hunks. > * When done with add-p, I would commit the so-staged hunks, > and then use `git reset --hard` to discard all changes that were > not acknowledged during add-p. > > Being able to discard hunks (reset working copy to index contents) > during add-p would alleviate the (quite broad) hard reset. Couldn't you just do git checkout -- . after staging your approved changes? To selectively zap uncommitted changes from your working tree, you could do git checkout --patch -- . I'm not sure overloading `git add` with a "reverse" action is a good idea. I'm actually prefer pragmatism over conceptual purity but I'm not sure the prospective gain here is clear.