Skip to content
Novus Examples
gitignore416 B

Gitignore - Escaped #, !, Bracket and Trailing Space

Every escape the format defines, including the one nobody expects: a trailing space is stripped from a pattern unless it is backslash-escaped, so `draft\ ` and `draft` ignore different files. Editors that trim trailing whitespace on save silently change what this file means.

Preview — first 15 linesgitignore
# A file literally named '#notes.md' — the hash must be escaped or it is a comment
\#notes.md

# A file literally named '!important.txt' — the bang must be escaped or it negates
\!important.txt

# Trailing spaces are stripped unless escaped; this ignores 'draft ' with one space
draft\ 

# A literal bracket, not a character class
report\[1\].csv

# Not a comment: only a hash in column 1 starts one
build/#temp

Specifications

Seed
20260807
Repository Name
.gitignore
Patterns
5
Escapes
6
Has Significant Trailing Space
true
Line Endings
LF
Encoding
UTF-8

Testing contract

Expected to pass
Scenario
Parse patterns whose leading # and ! are escaped and whose trailing space is significant.
Expected result
Five patterns are parsed, none of them treated as a comment or a negation; the third ignores the name 'draft ' with one trailing space, not 'draft'.

What is a .gitignore file?

A .gitignore file tells Git which untracked paths to leave alone. Each line is a pattern: a leading `/` anchors it to the containing directory, a trailing `/` restricts it to directories, `!` re-includes a previously excluded path, `**` matches across directory boundaries, and `#` introduces a comment. Rules are evaluated in order, with the last matching pattern winning, and nested .gitignore files layer on top of parent ones.

How to use this file

Use an example .gitignore file to test ignore-pattern engines in build tools, bundlers, linters, and container builders, checking negation ordering, anchored versus floating patterns, and directory-only rules against a documented set of expected matches.

How to use this file for testing

“Gitignore - Escaped #, !, Bracket and Trailing Space” is a deterministic Novus Examples fixture for Config parsing, Config testing, Visual diff / regression. TOML and INI configuration files with nested sections and typed values — for testing config parsers and loaders.

Documented properties for this file: seed 20260807 · UTF-8 · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Diff and patch fixtures name their target paths and the exact edge case they exercise — rename, mode change, binary hunk, CRLF↔LF, or missing trailing newline. Apply or render them against the documented before-state; every author, path, and hash is fictional.

Point your config loader at the file and assert it reads the documented sections and typed values, including any deliberately-tricky nesting or comments.

Generated by generation/version_control.py. Free for any use, no attribution required — license.