Re: [BUG] git clean -d is too greedy
- From
- Hermanni Suominen <hermanni@foobar.fi>
- Date
- Nov 2, 2017, 18:04 UTC
- Message-ID
- <1b6ba313-8d99-8604-1774-0f481eeeabec@foobar.fi>
- In-Reply-To
- <d2e823e2-800d-17ba-c9d4-f490cefefd2f@foobar.fi>
I was a bit trigger happy posting this, after digging a bit more this is a way more serious than I originally thought.
> 1) .gitignore exists in nested repo (either tracked or untracked) > 2) .gitignore is excluded
This can be any file, including those commonly excluded such as *~.
Demonstrating this in a way that looks a lot more likely use case which will potentially wipe out lots of uncommitted work:
# git init -q foo && cd foo # git init -q bar && cd bar # touch bar bar~ # git add bar && git commit -qm asd && cd .. # git clean -e \*~ -dn Would remove bar/bar
If there were more tracked files in nested repo they'd be removed as well as long as there is at least one excluded file in nested repo.
-- Hermanni