本文只讲一个知识点:
! 开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。
以下面的例子进行说明:目标是要保留文件夹1中所有各层文件夹中的c文件,其他都不要。
文件夹1-----/test.c一个文件。
文件夹1-----/文件夹1.1-----/文件夹1.1.1-----/a.txt a.c a.h三个文件。
文件夹1-----/文件夹1.1-----/文件夹1.1.2-----mu.txt
以下用法是达不到效果的。
/* 滤出所有文件
!**/*.c 把文件夹各层中的c文件捡回来。
由于“如果排除了该文件的父级目录,则使用 ! 也不会再次被包含”。在滤除所有文件时,已经把各级文件夹都滤除掉了。所以只能是滤除特定类型的,毕竟ignore就是要忽略的,反向行之不太好使。
**/*.h
**/*.txt
举一反三:
想要保留某子子文件夹的内容
/* 滤出所有文件
!文件夹1-----/文件夹1.1-----/文件夹1.1.2 把文件夹1.1.2中的内容再拿回来
错错错,滤除所有文件的时候只剩下了文件夹1,并不保留文件夹1.1,所以也就没法找到如下文件:文件夹1-----/文件夹1.1-----/文件夹1.1.2。
Note:git status --ignored 这个命令也挺好用的,可以知道哪些是被忽略的。
Git中使用.gitignore忽略文件的推送_思影影思的博客-CSDN博客_git ignore
如何使用.gitignore忽略Git中的文件和目录_求知_攀登者的博客-CSDN博客_gitignore 忽略目录