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**/