All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: git@vger.kernel.org
Cc: "Windl, Ulrich" <u.windl@ukr.de>
Subject: [PATCH v2] gitignore: rewrite wildcard description
Date: Tue, 03 Nov 2026 14:40:32 -0800	[thread overview]
Message-ID: <xmqqh5hx4jz3.fsf_-_@gitster.g> (raw)
In-Reply-To: <xmqq5wyjxgyn.fsf@gitster.g> (Junio C. Hamano's message of "Fri, 30 Oct 2026 09:59:12 -0700")

The documentation for '.gitignore' makes reference to fnmatch(3) and
FNM_PATHNAME to describe how an asterisk "*" and a question mark "?"
behave.  Even though it spells out that these wildcard characters
do not match a slash, it does not say if an asterisk matches an
empty string (it does).

Rewrite the section so that the readers would get a more complete
picture without requiring them to know what fnmatch(3) and glob(7)
says.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 * let's adopt the most explicit "(including the empty string)"
   from glob(7).

 Documentation/gitignore.adoc | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/Documentation/gitignore.adoc b/Documentation/gitignore.adoc
index 7979e50f18..87f37c2b0c 100644
--- a/Documentation/gitignore.adoc
+++ b/Documentation/gitignore.adoc
@@ -110,11 +110,16 @@ PATTERN FORMAT
    and `a/frotz` that is a directory (all paths are relative from
    the `.gitignore` file).
 
- - An asterisk "`*`" matches anything except a slash.
-   The character "`?`" matches any one character except "`/`".
-   The range notation, e.g. `[a-zA-Z]`, can be used to match
-   one of the characters in a range. See fnmatch(3) and the
-   FNM_PATHNAME flag for a more detailed description.
+ - An asterisk "`*`" matches any string (including the empty string),
+   and a question mark "`?`" matches any single character, but these
+   wildcard characters do not match a slash "`/`".
+
+ - A pair of brackets that enclose characters match one of the listed
+   characters, and a range notation inside them, e.g., "`[a-zA-Z]`",
+   would behave as if all the characters in the range were listed there
+   instead.  Wildcard characters "`*`" and "`?`" lose their special
+   meaning inside a pair of brackets, e.g., "`[*]`" would match an
+   asterisk and nothing else.
 
  - A backslash ("`\`") can be used to escape any character. E.g., "`\*`"
    matches a literal asterisk (and "`\a`" matches "`a`", even though

Interdiff:
  diff --git a/Documentation/gitignore.adoc b/Documentation/gitignore.adoc
  index 671a5a4c99..87f37c2b0c 100644
  --- a/Documentation/gitignore.adoc
  +++ b/Documentation/gitignore.adoc
  @@ -110,9 +110,9 @@ PATTERN FORMAT
      and `a/frotz` that is a directory (all paths are relative from
      the `.gitignore` file).
   
  - - An asterisk "`*`" matches string of any length, and a question mark
  -   "`?`" matches any single character, but these wildcard characters
  -   do not match a slash "`/`".
  + - An asterisk "`*`" matches any string (including the empty string),
  +   and a question mark "`?`" matches any single character, but these
  +   wildcard characters do not match a slash "`/`".
   
    - A pair of brackets that enclose characters match one of the listed
      characters, and a range notation inside them, e.g., "`[a-zA-Z]`",
-- 
2.56.0-511-g14903f623d

      parent reply	other threads:[~2026-11-03 22:40 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-30 10:46 Q: .gitignore and asterisk "*" Windl, Ulrich
2026-10-30 16:59 ` Junio C Hamano
2026-11-03  7:33   ` Tuomas Ahola
2026-11-03 12:00     ` [EXT] " Windl, Ulrich
2026-11-03 17:13     ` Junio C Hamano
2026-11-03 17:29       ` Tuomas Ahola
2026-11-03 22:40   ` Junio C Hamano [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqqh5hx4jz3.fsf_-_@gitster.g \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=u.windl@ukr.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.