[BUG] git clean -X behaviour when .gitignore has sub-directory entries
- From
Jean-Philippe Gariépy <jean-philippe.gariepy@nuecho.com>
- Date
- Sep 27, 2010, 14:35 UTC
- Message-ID
- <4CA0AB9A.4050002@nuecho.com>
(this is a repost w/ a bit more context)
Hi,
Context: "git clean -X" is really helpful in my projects to mimick a "make clean" (or more precisely a "make distclean") but I believe there is a small problem with the -X option of git clean. I've validated this with other people and they agree it's a bug.
Problem: When using sub-directory entries in .gitignore, while the entry is ignored as expected, "git clean -X" doesn't clean the ignored sub-directory.
$ git init test Initialized empty Git repository in /home/jpgariep/git/test/.git/ $ cd test/ $ mkdir -p a/b/c $ touch a/b/c/test $ echo '/a/b/' > .gitignore $ git add .gitignore $ git commit -m "Added .gitignore." [master (root-commit) 94e2825] Added .gitignore. 1 files changed, 1 insertions(+), 0 deletions(-) create mode 100644 .gitignore $ git status # On branch master nothing to commit (working directory clean) $ git clean -X -d -f $ ls a b
Why is b still there?
Git version: git version 1.7.2.3 (but this has been around since 1.6.something) Tested also with 1.7.3.2.g9027fa (today's HEAD of master branch)
Thanks.
-- Jean-Philippe