.gitignore 文件无法正常工作

.gitignore file not working properly

我有以下 .gitignore 文件:

# Ignore everything
*

# But not these
!.gitignore
!Code
!Materials

目的是忽略除 .gitignore 文件本身之外的所有内容,以及 Code 和 Materials 目录下的所有内容。不知何故,当我打开 SourceTree 时,.gitignore 文件被正确排除,但代码和材料目录被忽略。我做错了什么?

* 也匹配这些目录中的每个文件(并且 Git 不跟踪空目录)。您可以只忽略顶层:

# Ignore everything
/*

# But not these
!/.gitignore
!/Code
!/Materials

/Code/example.cs 之类的路径不会被 /* 匹配,因为 * 只能表示一个路径组件,但是没有 [=16] 的简单 * =] 匹配/Code/example.csexample.cs部分。