Pete Harlan
2012-01-16 02:00:14 UTC
Hi,
When a directory contains nothing but an ignored subdirectory, that
subdirectory does not get removed by "git clean -Xdf".
For example, in a new directory:
# git init
Initialized empty Git repository in /tmp/foo/.git/
# echo a/ >.gitignore
# git add .gitignore
# git commit -m "Initial commit"
[master (root-commit) c3af24c] Initial commit
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 .gitignore
# mkdir -p foo/a
# touch foo/a/junk.o
# git status
# On branch master
nothing to commit (working directory clean)
# git clean -Xdn # <--- DOES NOT MENTION foo/a
# touch foo/x.c
# git clean -Xdn # <--- DITTO WITH UNTRACKED IN foo
# git add foo/x.c
# git clean -Xdn # <--- WITH TRACKED IN foo, WILL REMOVE a/
Would remove foo/a/
#
Is this intentional? It's interfering with my using "git clean" to
remove built objects, which happen to be in a dedicated temporary
subdirectory.
Thanks,
--Pete Harlan
***@pcharlan.com
When a directory contains nothing but an ignored subdirectory, that
subdirectory does not get removed by "git clean -Xdf".
For example, in a new directory:
# git init
Initialized empty Git repository in /tmp/foo/.git/
# echo a/ >.gitignore
# git add .gitignore
# git commit -m "Initial commit"
[master (root-commit) c3af24c] Initial commit
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 .gitignore
# mkdir -p foo/a
# touch foo/a/junk.o
# git status
# On branch master
nothing to commit (working directory clean)
# git clean -Xdn # <--- DOES NOT MENTION foo/a
# touch foo/x.c
# git clean -Xdn # <--- DITTO WITH UNTRACKED IN foo
# git add foo/x.c
# git clean -Xdn # <--- WITH TRACKED IN foo, WILL REMOVE a/
Would remove foo/a/
#
Is this intentional? It's interfering with my using "git clean" to
remove built objects, which happen to be in a dedicated temporary
subdirectory.
Thanks,
--Pete Harlan
***@pcharlan.com