git ignore 总结

忽略和 ! 不忽略的先后顺序

  gitignore的规则是有从上到下的顺序的,所以当我们使用 ! 不忽略的时候,这个顺序会对结果产生影响

例如:

# 忽略所有 folder 文件夹下的 readme.txt

folder/readme.txt

# 不忽略所有 readme.txt,folder 文件夹下的 readme.txt 会从新被跟踪

!readme.txt

# 忽略所有 readme.txt

readme.txt

# 不忽略 folder 文件夹下的 readme.txt

!folder/readme.txt

忽略"文件夹"和 ! 不忽略该文件夹下的内容

  当一个文件夹被忽略了,那么 ! 不会对这个文件下的内容产生影响,如果之前有某个规则把一个文件忽略了,如果想跟踪该文件夹下的某个内容,则要把该文件夹先 ! 不忽略

例如:

#忽略所有文件夹

*/

# 该规则不会产生影响,因为所有文件夹已经被忽略了

!folder/readme.txt

# 不忽略 folder 文件,这样 folder 文件夹下的所有都会被跟踪了

!folder/

# 忽略 所有 folder 文件下的所有

folder/*

# 单独不忽略所有 folder 文件夹下的 readme.txt

!folder/readme.txt

文件夹 xxx/

注意 / 是在 xxx之后的,代表的是文件夹,如果没有 / ,即代表文件夹,也代表文件

例如:

# 递归忽略以 a 开头的所有 文件 和 文件夹

a*

# 递归忽略以 a 开头的所有文件夹

a*/

当前文件夹或当前路径 /xxx

注意 / 是在 xxx 之前

例如:

# 忽略当前文件夹下的 readme.txt

/readme.txt

# 忽略所有 readme.txt

readme.txt

匹配全路径 /** 和当前路径 /*

例如:

# 忽略所有 folder 文件下的所有 txt 文件,但不忽略 folder/subfolder/*.txt

folder/*.txt

# 递归忽略所有 folder 文件夹下的 *.txt

folder/**/*.txt

# 不忽略folder下的所有内容,包括递归内容

!folder/**

# 不忽略 folder 下的所有文件夹

!folder**/

05-04 07:30