git/list[1] front-page[2] threads[3] people[4] search[5] about
 

.gitignore: according to what rules does this work

From
KKKonrad Karl <kk_konrad@gmx.at>
Date
May 26, 2010, 16:23 UTC
Message-ID
<2033.90713218159$1274891002@news.gmane.org>

I have the following directory layout and want to exclude dir2 .. dirN

The following arrangement of .gitignore seems to work ok but I was unable to find docs about the double asterisks.

./.gitignore:

* */ !.gitignore !/dir1/

dir1/.gitignore:

!** !**/

these two lines seem to be enough to have all subdirectories within dir1 being included (which is desired) but why?

|-- .gitignore
|-- dir1
|   |-- .gitignore
|   |-- file1
|   |-- subdir1
|   |   |-- file1
|   |   `-- subsubdir1
|   |       |-- file1
|   |       `-- subsubsubdir1
|   |           `-- file1
|   `-- subdir2
|       `-- file1
|-- dir2
|   `-- file1
.
.
.
--- dirN
    `--file1

git add . says: .... # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: .gitignore # new file: dir1/.gitignore # new file: dir1/file1 # new file: dir1/subdir1/file1 # new file: dir1/subdir1/subsubdir1/file1 # new file: dir1/subdir1/subsubdir1/subsubsubdir1/file1 # new file: dir1/subdir2/file1

Before discovering this I was playing like this:

!* !*/ !*/* !*/*/

and so on.

Greetings, Konrad

Message 1 of 1 in “.gitignore: according to what rules does this work”
  1. Konrad KarlMay 26, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.