Writing an Ignore List
Your ignore list keeps files out of the shared repository, and is intended for build outputs, caches, local settings, and temporary files. Anything it matches is treated as not part of the repo: it shows no status in your workspace, it cannot be marked for add, and it is never pulled from the server.
Where it lives
ignore.txt is a normal file at the root of the repository, versioned like any other file. To create or change it, put an ignore.txt at the top of your workspace, mark it for add, write your rules, and submit. Everyone who pulls gets the same list, because the rules that apply are always the version committed to the server.
Until an ignore.txt is committed, nothing is ignored.
The rules
- One pattern per line. Blank lines are skipped.
#starts a comment — the whole line is skipped.!at the start re-includes something an earlier line ignored.- Later lines win. Patterns apply top to bottom and the last one that matches decides. Put broad rules first and exceptions after them.
- Matching is case-sensitive.
Build/andbuild/are different things; use a character class if you need both.
Wildcards
| Token | Matches |
|---|---|
* | Any run of characters within a single name. Does not cross /. |
** | Anything, including / — spans any number of folders. |
? | Exactly one character, not /. |
[abc] | Any one of the listed characters. [Bb] is B or b. |
[!abc] | Any one character not listed. |
Anchoring and folders
- A pattern with no
/matches by name at any depth.*.tmpcatches every.tmpanywhere;Buildmatches anyBuildentry in any folder. - A pattern containing a
/, or starting with one, is anchored to the repository root./Buildonly matchesBuildat the top level. - A trailing
/means a folder — it ignores that directory and everything inside it.Temp/catches anyTempfolder and all its contents.
An example
# Comments start with a hash.
# A specific file, anywhere it appears
foo.txt
# By extension, at any depth
*.tmp
*.pdb
*.exe
# Whole folders, and everything inside them
Library/
Temp/
Build/
**/Intermediate/ # an Intermediate folder at any depth
/DerivedDataCache/ # only at the repo root
# Wildcards inside a name
*-Debug.* # anything like game-Debug.dll
*.csproj.*
# Case-insensitive folder match
[Bb]uild/
# Ignore a folder but keep something inside it.
# Order matters - the ! line comes after the rule it undoes.
/Assets/Plugins/FMOD/**
!/Assets/Plugins/FMOD/**/lib/*How the client treats an ignored file
- No status chip. Ignored files sit quietly in your workspace — the app will not nag you to add settings or temp files.
- They cannot be marked for add. Select a folder and hit Add New and the ignored files are skipped silently while the rest go in. Only if your selection is entirely ignored files does the app say so.
- They are never pulled. Ignored junk that somehow reached the server will not land in your workspace.