I think the message no changes added to commit (use "git add" and/or "git commit -a") is not clear enough since it lacks on the "git rm" command which is shown above. # (use "git add/rm <file>..." to update what will be committed) Of course, applying this topic would solve this problem. Alternatively we could adjust the message. On Mon, Aug 13, 2012 at 7:54 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Angus Hammond <angusgh@xxxxxxxxx> writes: > >> ... Personally I'd like to see >> "git add foo" here be equivalent "git rm --cached foo", but I can >> understand how others might prefer git add not to be destructive like >> that. > > Funny that you bring it up this week. As I wrote in > > http://git-blame.blogspot.com/2012/08/leftover-bits.html > > I think the following topic should be revisited: > > http://thread.gmane.org/gmane.comp.version-control.git/171811/focus=171841 > > -- >8 -- > From: Junio C Hamano <gitster@xxxxxxxxx> > Date: Tue, 19 Apr 2011 12:18:20 -0700 > Subject: [PATCH] git add: notice removal of tracked paths by default > > When run without "-u" or "-A" option, > > $ edit subdir/x > $ create subdir/y > $ rm subdir/z > $ git add subdir/ > > does not notice removal of paths (e.g. subdir/z) from the working tree. > Make "git add" to pretend as if "-A" is given when there is a pathspec on > the command line. "git add" without any argument continues to be a no-op. > > When resolving a conflict to remove a path, the current code tells you to > "git rm $path", but now with this patch you can say "git add $path". Of > course you can do "git add -A $path" without this patch. > > In either case, the operation "git add" is about "adding the state of the > path in the working tree to the index". The state may happen to be "path > removed", not "path has an updated content". > > The semantic change can be seen by a breakage in t2200, test #15. There, > a merge has conflicts in path4 and path6 (which are removed from the > working tree), and test checks "git add path4" to resolve it must fail, > and makes sure "add -u" needs to be used. We do not have to do this > anymore. > > Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> > --- > builtin/add.c | 3 +++ > t/t2200-add-update.sh | 4 ---- > 2 files changed, 3 insertions(+), 4 deletions(-) > > diff --git a/builtin/add.c b/builtin/add.c > index 89dce56..4eae028 100644 > --- a/builtin/add.c > +++ b/builtin/add.c > @@ -389,6 +389,9 @@ int cmd_add(int argc, const char **argv, const char *prefix) > > if (addremove && take_worktree_changes) > die(_("-A and -u are mutually incompatible")); > + /* default "git add pathspec..." to "git add -A pathspec..." */ > + if (!take_worktree_changes && argc) > + addremove = 1; > if (!show_only && ignore_missing) > die(_("Option --ignore-missing can only be used together with --dry-run")); > if ((addremove || take_worktree_changes) && !argc) { > diff --git a/t/t2200-add-update.sh b/t/t2200-add-update.sh > index 4cdebda..b2fcd01 100755 > --- a/t/t2200-add-update.sh > +++ b/t/t2200-add-update.sh > @@ -150,10 +150,6 @@ test_expect_success 'add -u resolves unmerged paths' ' > echo 2 >path3 && > echo 2 >path5 && > > - # Explicit resolving by adding removed paths should fail > - test_must_fail git add path4 && > - test_must_fail git add path6 && > - > # "add -u" should notice removals no matter what stages > # the index entries are in. > git add -u && > -- > 1.7.12.rc2.85.g1de7134 > > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html