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

From: Jakub Narebski <[email-masked]>
Date: Fri, 10 Sep 2010 21:33:17 +0200

On Fri, 10 Sep 2010, Ævar Arnfjörð Bjarmason wrote:
> On Fri, Sep 10, 2010 at 18:52, Jakub Narebski <[email-masked]> wrote:
> > 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).
> > +
> 
> Maybe fix this too in the same manpage:
> 
>     A line starting with # serves as a comment.
> 
> To:
> 
>     A line starting with # serves as a comment. Use \# for a literal #
> character. See ...

Something like this?
-- >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