.gitignore entire directory with whitespace in nam

2019-04-28 07:12发布

问题:

Goal

Trying to ignore the annoyingly-named "TextMesh Pro" directory, underneath an "Assets" folder (full path from the root where .gitignore resides is "Sky Labyrinth\Assets\Text Mesh Pro\").

Attempted

I followed the suggestions in 3 threads (one, two, three) unsuccessfully.

In the actual .gitignore file I tried:

TextMesh Pro/
TextMesh\ Pro/
**/TextMesh Pro/
**/TextMesh\ Pro/
\Assets\TextMesh Pro\
\Assets\TextMesh/ Pro\
**\Assets\TextMesh Pro\
**\Assets\TextMesh/ Pro\
"\TextMesh Pro\"
"**\TextMesh Pro\"

And a bunch of other combinations that I didn't expect to work (that did indeed not work).

Ruled Out

The files are not cached, I have never committed anything from that directory. Just to be sure, I ran:

git rm -r --cached "Sky Labyrinth\Assets\Text Mesh Pro\"

which did not match anything. Just to be doubly sure, I ran

git reset --hard

and re-imported the asset. There is a minor caveat I guess, I did commit a .Unity scene change that had some TextMesh Pro gameobjects inside it; despite my lack of expert Git knowledge I'm pretty sure that shouldn't magically make stuff inside the Assets\TextMesh Pro\ directory get cached or somehow un-ignorable.

Halp

Any ideas on how to correctly ignore an entire sub-directory that has whitespace inside the name? I don't need to ignore specific files inside it, I want the whole thing ignored. I understand that as a workaround I could either:

  1. Manually remove the whitespace from the directory name - but anytime I update the plugin I have to repeat this

  2. Make another .gitignore inside the \TextMesh Pro\ directory that ignores everything inside with

    /*

    which will be my last resort since it's the only thing I've gotten to work. However I'd prefer to understand how to correctly deal with whitespaces in directory names, or learn that it's simply not possible if that's the case.

回答1:

Correct answer is:

TextMesh*Pro/

**/TestMesh Pro/

Should also work



回答2:

It seems that you have missed one of the spaces between Text and Mesh. Try adding

Assets/Text\ Mesh\ Pro/

to your .gitignore