From: Hermanni Suominen Date: Thu, 02 Nov 2017 18:04:40 GMT Subject: Re: [BUG] git clean -d is too greedy Message-ID: <1b6ba313-8d99-8604-1774-0f481eeeabec@foobar.fi> In-Reply-To: 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