On Jul 1, 2008, at 11:57 AM, Paul Gardiner wrote:
I don't think I can make .gitignore files do the job, because
it seems that you can set up to ignore a whole directory,
and then partially countermand that by placing a .gitignore
file (containing ! commands) inside the directory. That
makes me think that ignoring doesn't prevent the
enumeration.
That's where you're wrong. You can't get git to pay attention to
anything inside an ignored directory using the .gitignore files. Once
you ignore a directory, git stops looking at it completely. You can
force git to look at a file inside an ignored directory by adding it
directly, though. Git will pay attention to files you add for
changes, but won't pay any attention to other files around it.
See the log below for what I mean:
$ mkdir temp
$ cd temp
$ git init
Initialized empty Git repository in /Users/brian/dev/temp/.git/
$ cat > .gitignore
ignoredir/
$ mkdir ignoredir
$ touch A
$ touch ignoredir/B
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# A
nothing added to commit but untracked files present (use "git add" to
track)
$ cat > ignoredir/.gitignore
!B
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# A
nothing added to commit but untracked files present (use "git add" to
track)
$ git add ignoredir/B
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: ignoredir/B
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# A
$ git commit -m "A"
Created initial commit 36ade7a: A
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 ignoredir/B
$ echo new > ignoredir/B
$ git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
#
# modified: ignoredir/B
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# A
no changes added to commit (use "git add" and/or "git commit -a")
--
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