.gitignore中,!代表不忽略:
/*
!/project/*
代表忽略掉根目录下所有内容,但不忽略根目录下porject文件夹下的内容
昨天在配置ignore的时候,想做如下配置:
/*
!.gitignore
!/project/src/com/*
即,我只想同步.gitignore文件和根目录下project/src/com文件夹内的所有内容(根目录、project下和src下都有其他文件和文件夹)时
git仅对gitignore采取了不忽略,而仍然对project/src/com内的所有文件进行了忽略。
在网上查原因的时候,发现很多人都说了这样一句话:就是如果父文件夹已经被忽略掉了,那无法再对该文件夹进行不忽略。以下说人话:
因为“/*”已经对/project/src/(即com文件夹的父文件夹)进行了忽略,所以对com文件夹的不忽略不生效
想要实现对com文件夹的不忽略,只能对根目录下的文件夹进行逐一忽略,比如:
/A
/B
/C
/project/AA
/project/BB
/project/src/* #这里可以理解为别的文件夹都是直接忽略掉文件夹,而src这里是忽略掉src里面的全部内容,而没有忽略文件夹自身
!/porject/src/com #因为没有忽略掉src文件夹自身,所以才能对com文件夹实施不忽略
这样写就可以实现。
虽然现在很多git客户端都实现了ignore文件的自动生成,但还是希望后续能优化一下。
本人菜鸟,不求甚解。所写如有错,望指正,感谢!