以’#'开始之后的,被视为注释;
.class # 忽略此项目下的所有.class文件;
/.class # 仅忽略此项目根目录下的所有.class文件;
target/ # 忽略此项目所有target文件夹;
/target/ # 忽略此项目根目录下target文件夹;
!**/src/main/** #不忽略此文件夹及其内所有文件,前后有多层文件夹都可以匹配上;
‘*’ 匹配一个或多个任意字符;
‘!’ 非,不忽略;
‘**’ 匹配多层文件夹;
‘/’ 名字之前表示根目录,名字之后表示此名字是个文件夹;
‘[]’ 匹配[]中的任一字符
‘?’ 匹配一个任意字符
‘[0-9]’ 匹配0-9中的任意数字,同理[a-z]
注:
1.’/‘在前,说明仅忽略根目录下的,没有’/‘说明忽略此项目所有,对于文件和文件夹都适用;
2.末尾有’/'的,说明是忽略这个文件夹,没有,说明是文件(不管其是否有后缀名);
3.忽略文件夹和不忽略此文件夹下面的文件(或文件夹)不能同时使用,如果同时使用,将直接忽略此文件夹,不忽略此文件夹下的文件(或文件夹)将不可用,如下解释:
有如下目录:
aa/ # 忽略aa文件夹
!33/ #对于aa下的33文件夹不可用,仍然会被忽略;
!cc.class #对于aa下的cc.class不可用,仍然会被忽略;
4.如果忽略和不忽略存在冲突,则以下边为准(代码从上至下解释),第3条注是个特例,不符合从上至下原则;
5…gitignore文件需要在项目第一次提交之前就配置好,提交之后的配置将无效,其实实际是,只要需要跟踪版本的文件还未被跟踪,则可以添加到.gitignore文件中,依然有效(像这种情况一般是新建的文件或者文件夹),.gitignore文件配置只是对已经提交到库中的文件或者文件夹无效;
此文章仅个人记录,符合我自己的理解,有些可能我认为比较简单的就没有详细记录,有问题评论,有时间会解答;
文章个人原创,转载请务必注明出处;