Question

I just ran into this message:

$ git add .
warning: You ran 'git add' with neither '-A (--all)' or '--ignore-removal',
whose behaviour will change in Git 2.0 with respect to paths you removed.
Paths like 'README.md' that are
removed from your working tree are ignored with this version of Git.

* 'git add --ignore-removal <pathspec>', which is the current default,
  ignores paths you removed from your working tree.

* 'git add --all <pathspec>' will let you also record the removals.

Run 'git status' to check the paths you removed from your working tree.

I think setting --all is a pretty sane default, since I can reset if something was added unexpectedly. How can I make that behavior default?

Était-ce utile?

La solution

The warning you see comes from commit ccc663b, itself reworking commit 45c45e3.

That second commit does include:

git add: start preparing for "git add <pathspec>..." to default to "-A"

Plan to eventually make "git add" pretend as if "-A" is given when there is a pathspec on the command line.
When resolving a conflict to remove a path, the current code tells you to "git rm $path", but with such a change, you will be able to say "git add $path" (of course you can do "git add -A $path" today).

So with Git 2.0, git add . will do what you want, but right now, a git alias is the way to get this by default.

git config alias.a 'add -A .'

[alias] 
  a = add -A .

This is now (March 2014) registered for the next release, with commit 160c4b1 and commit fdc97ab, for the next Git 2.0 (Q2 2014).

Autres conseils

With git you can create aliases, so you can try this:

git config --global alias.adall 'add . --all'

Here use "adall" but not "add" to avoid some unnecessary add but if you like add is also OK.

After this configuration then you can add all by command like below:

git adall
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top