Git:*.sth(没有子目录?)和**/*.sth(包括子目录)之间的区别

Git: Difference between *.sth (without subdir?) and **/*.sth (include subdir)

有区别吗

# Python
**/__pycache__
**/*.py[cod]

# Python
__pycache__
*.py[cod]

我看到大多数网站都建议使用第二个,但是如果这些构建文件不应该存在,难道不应该将它们也从子文件夹中删除吗?第二个似乎只关心根文件夹吗?

您的两个示例都忽略了任何目录中的 __pycache__*.py[cod] 文件。要只忽略根文件夹中的文件,路径前需要有一个斜线:

/__pycache__
/*.py[cod]

**一般用于比较复杂的目录结构,例如:

/dirA/**/__pycache__