tags:

views:

110

answers:

1

I'm using msysgit on Windows 7 x64. I can't figure out how to tell Git to add a lot of files when there are some files that .gitignore might ignore. For example:

  1. Initialize a git repository.
  2. Create a .gitignore with contents:

    *.foo
    
  3. Create files "test.txt" and "test.foo".

  4. Try git add .

When I try this, git complains that test.foo is ignored and I should use -f if I really want to add it. What I'd rather do is add everything but the files that are configured to be ignored. I looked at the git-add documentation and it looks like -A should help; help says, "... and add all untracked files that are not ignored by .gitignore mechanism." No dice, when I try git add -A . I get the same error. Using -f adds the ignored file, which is not what I want. (The use case is mass-adding files from a VS project after ignoring .suo and other files.)

Is this a problem with the git implementation I'm using, or is there some argument to git-add that I am missing?

+1  A: 

Here git add * complains, but git add . does what is expected (1.7.0.4, Linux).

From git-add(1):

The git add command will not add ignored files by default. If any ignored files were explicitly specified on the command line, git add will fail with a list of ignored files. Ignored files reached by directory recursion or filename globbing performed by Git (quote your globs before the shell) will be silently ignored.

wRAR
Strange, is there any particular reason why this is the case? Does the documentation explain how wildcards/directory shortcuts are considered?
OwenP
I've added a quote from the documentation describing this behavior.
wRAR