space 在 .gitignore 中行的开头似乎忽略了该行
space at beginning of line in .gitignore seems to get the line ignored
.gitignore
之间的唯一区别是行首的 space,它似乎使该行被忽略。为什么结果不一样。我添加了 space 用于对齐。
Git文件夹树结构:
.
└── d1
├── d11
│ ├── f1
│ └── f2
├── d12
│ ├── f1
│ └── f2
└── f1
首先.gitignore:
/*
!d1
d1/*
!/d1/d11
第一个可暂存文件:
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: d1/d11/f1
new file: d1/d11/f2
第二条.gitignore:(注意第三条规则的区别)
/*
!d1
d1/*
!/d1/d11
第二个可暂存文件:
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: d1/d11/f1
new file: d1/d11/f2
new file: d1/d12/f1
new file: d1/d12/f2
new file: d1/f1
Here is the image of my execution我希望结果应该是一样的。
错误的直觉可能来自这条规则,它没有说明开始 space。不过我确实看到了尾随这个词。
Trailing spaces are ignored unless they are quoted with backslash ("\").
d1/*
和 d1/*
的区别在于,第一个忽略文件夹 d1
下的所有内容,第二个忽略文件夹 ' d1'
下的所有内容。
这背后的原因是 文件夹可以以空格开头。
所以这两个 .gitignore
文件匹配不同的文件夹。因此,为什么第二个包含 d1
文件夹下的所有内容。
.gitignore
之间的唯一区别是行首的 space,它似乎使该行被忽略。为什么结果不一样。我添加了 space 用于对齐。
Git文件夹树结构:
.
└── d1
├── d11
│ ├── f1
│ └── f2
├── d12
│ ├── f1
│ └── f2
└── f1
首先.gitignore:
/*
!d1
d1/*
!/d1/d11
第一个可暂存文件:
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: d1/d11/f1
new file: d1/d11/f2
第二条.gitignore:(注意第三条规则的区别)
/*
!d1
d1/*
!/d1/d11
第二个可暂存文件:
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: d1/d11/f1
new file: d1/d11/f2
new file: d1/d12/f1
new file: d1/d12/f2
new file: d1/f1
Here is the image of my execution我希望结果应该是一样的。
错误的直觉可能来自这条规则,它没有说明开始 space。不过我确实看到了尾随这个词。
Trailing spaces are ignored unless they are quoted with backslash ("\").
d1/*
和 d1/*
的区别在于,第一个忽略文件夹 d1
下的所有内容,第二个忽略文件夹 ' d1'
下的所有内容。
这背后的原因是 文件夹可以以空格开头。
所以这两个 .gitignore
文件匹配不同的文件夹。因此,为什么第二个包含 d1
文件夹下的所有内容。