On Thu, Aug 21, 2014 at 10:16:08PM -0400, Paul Smith wrote: >>> Does it seem incorrect to anyone else that "git clean -X" doesn't >>> delete all the files in your workspace that are considered ignored >>> by "git status"?
Well, reading the man page for `git clean` like a lawyer (my emphasis
below):
-X Remove only *files* ignored by Git. This may be useful to
rebuild everything from scratch, but keep manually created
files.
So, it could be argued it does what it says, it removes all *files*
ignored by git, not ignored *folders*.
I set up a small example that I hope matches your situation:
~~~~
% tree
.
└── SRC
├── foo.cxx
└── SOMELIB.dir
├── Debug
│ └── foo.cxx.o
└── Release
└── foo.cxx.o
4 directories, 3 files
% cat .gitignore
Debug/
Release/
% git status
On branch master
nothing to commit, working directory clean
% git clean -ndX
% git clean -ndx
Would remove SRC/SOMELIB.dir/
~~~~
So git doesn't want to delete the ignored *folders* Debug/ and Release/. Even
more interestingly is the behaviour when we start ignoring '*.o' too:
~~~~
% print '*.o' >> .gitignore
% git clean -ndX
% git clean -ndx
Would remove SRC/SOMELIB.dir/
~~~~
That is, `git clean -ndX` won't remove ignored files located in ignored folders!
I would argue that raising a bug on this is called for.
/M
--
Magnus Therning OpenPGP: 0xAB4DFBA4
email: [email protected] jabber: [email protected]
twitter: magthe http://therning.org/magnus
Goto labels should be left-aligned in all caps and should include the
programmer's name, home phone number, and credit card number.
-- Abdul Nizar
pgpUKJ7A8G8pQ.pgp
Description: PGP signature
