关于gitignore问题的路径问题

最近在学习git,了解到gitignore文件可以起到屏蔽/关注管理工作。现在有一个疑惑,关于目录分隔符“/”。假设gitignore文件是这么写的:

/data0/
data1/
*data1/
data2

我比较困惑的是第一个"/",这个代表当前项目也就是gitignore文件所在的根目录还是指,服务器的ROOT目录。
这4个分别是什么含义?

阅读 6.7k
2 个回答

.gitignore 配置文件用于配置不需要加入版本管理的文件,配置好该文件可以为我们的版本管理带来很大的便利。

常用配置语法:

  1. 以斜杠“/”开头表示目录;
  2. 以星号“*”通配多个字符;
  3. 以问号“?”通配单个字符;
  4. 以方括号“[]”包含单个字符的匹配列表;
  5. 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

还有,git 对于 .gitignore配置文件是按照从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;

就问题而言:
/data0/:忽略根目录下的 /data0/ 目录的全部内容;
data1/:忽略目录 data1/ 下的全部内容;注意,不管是根目录下的 data1/ 目录,还是某个子目录 data1/ 目录,都会被忽略;
*data1/:忽略以data1结尾的目录下的全部内容;注意,不管是根目录下的以data1结尾目录,还是某个子目录 以data1结尾的目录,都会被忽略;
data2:忽略data2文件。

希望对您有所帮助!

不包含/就全局查找,包含/就匹配路径 *的意思是匹配任意符号