我希望将所有* .meta文件包含在Assets目录和所有子目录中,同时排除Assets中的所有其他内容
我试过
/Assets/*
!/Assets/**/*.meta
!*.meta
但在/ Assets ????
中只包含* .meta感谢您的帮助
答案 0 :(得分:3)
首先,如果忽略规则不起作用,您可以查看with git check-ignore
:
git check-ignore -v -- yourFile
它将显示哪个忽略规则忽略您认为不应忽略的文件。
然后要记住的主要规则是:
It is not possible to re-include a file if a parent directory of that file is excluded.(
*
)
(*
:除非在git 2.?+中满足某些条件,请参见下文)
这就是为什么您的规则只在*.meta
(而不是子目录)中包含/Assets
的原因
您需要包含文件的所有父文件夹(如in this recent example)才能包含文件
/Assets/**/**
! /Assets/**/
!/Assets/**/*.meta
我使用git 2.4.1测试它并且它可以工作(甚至在Windows上)
它仅包含*.meta
和所有子目录中的Assets
个文件,但不包括其他所有内容。
请注意,使用git 2.9.x / 2.10(2016年中期?),如果排除该文件的父目录if there is no wildcard in the path re-included,则可能会重新包含文件。
Nguyễn Thái Ngọc Duy (pclouds
)正在尝试添加此功能:
然而,由于重新加入的条件之一是:
重新包含规则中的目录部分必须是文字(即没有通配符)
这不会在这里奏效。