git项目的文件夹结构:
.git/
<some git stuff>
.gitignore
level1/
level2/
file1
file2
文件
.gitignore
、file1
和 file2
都是空的。
我执行了 git add .gitignore
和 git commit -m "create empty .gitignore"
。如果
.gitignore
是空的,那么使用 git add -A
后跟 git status
输出(如预期一样):new file: level1/level2/file1
new file: level1/level2/file2
所以,我执行了
git reset
命令来测试对.gitignore
的更改结果(假设我在每个对.gitignore
的更改之间都这样做)。如果
.gitignore
包含level1
、level1/
、level1/*
、level2
或level2/
中的任意一个,则执行git add -A
,然后执行git status
会输出以下内容(如预期所示):modified: .gitignore
然而,如果 .gitignore
包含 level2/*
,那么执行 git add -A
然后执行 git status
将输出:
modified: .gitignore
new file: level1/level2/file1
new file: level1/level2/file2
为什么在这种情况下,
level2/*
没有与level2/
相同的效果?此外,尽管level2/*
不起作用,但**/level2/*
却可以。