Subject: Re: How do I .gitignore files starting with "#"?

From: Jakub Narebski <[email-masked]>
Date: Fri, 10 Sep 2010 11:52:15 -0700 (PDT)

Bruce Korb <[email-masked]> writes:

> After trying lots of variations, I found it to be:
> 
> \#*
> 
> Not obvious and not easy to look up.  Please add it to your
> .git/info/exclude sample text.  Thanks!

Well, it is quite obvious to me, as escaping special characters using
backslash is typical in Unix tools.  But you are right that this needs
to be documented.

Perhaps something like this?  I am not sure about example in
.git/info/exclude skeleton

-- >8 --
Subject: [PATCH] Document escaping of special characters in gitignore files

Requested-by: Bruce Korb <[email-masked]>
Signed-off-by: Jakub Narebski <[email-masked]>
---
 Documentation/gitignore.txt |    6 ++++++
 templates/info--exclude     |    1 +
 2 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/Documentation/gitignore.txt b/Documentation/gitignore.txt
index 7dc2e8b..67ae4d0 100644
--- a/Documentation/gitignore.txt
+++ b/Documentation/gitignore.txt
@@ -98,6 +98,12 @@ Patterns have the following format:
    For example, "/{asterisk}.c" matches "cat-file.c" but not
    "mozilla-sha1/sha1.c".
 
+ - You can escape special characters using backslash.
+   For example, "{backslash}#*" matches files beginning in `#`
+   (otherwise it would be considered comment),
+   and "{backslash}!*{backslash}?" matches files starting with `!`
+   (negate pattern prefix) and ending with `?` (glob wildcard).
+
 An example:
 
 --------------------------------------------------------------
diff --git a/templates/info--exclude b/templates/info--exclude
index a5196d1..2ebaf0d 100644
--- a/templates/info--exclude
+++ b/templates/info--exclude
@@ -4,3 +4,4 @@
 # exclude patterns (uncomment them if you want to use them):
 # *.[oa]
 # *~
+# \#*#
-- 
1.7.2.1