Hi all,
Since commit 6b1db4310 it is possible to make git clean -d to remove
nested git repositories if
1) .gitignore exists in nested repo (either tracked or untracked)
2) .gitignore is excluded
Regarding to 2) it doesn't matter if .gitignore is excluded from
(another) .gitignore or from command-line (but I assume they populate
same ignore list so that's just stating the obvious).
To demonstrate this I can run the following commands:
# git init -q foo && cd foo
# git init -q bar && cd bar
# touch .gitignore bar
# git add bar && git commit -qm asd && cd ..
# git clean -e .gitignore -dn
Would remove bar/bar
Pre 6b1db4310, and if .gitignore isn't exclued, nested repo is correctly
skipped:
# git clean -dn
Would skip repository bar/
It probably isn't very common use case to exclude .gitignore but
nevertheless this has been broken for a while, and to make things worse
it can wipe out lots of uncommitted changes.
--
Hermanni