私は次のような構造を持っています:
/root/
/root/data/
/root/data/script.php
/root/data/some.json
/root/data/feature/one.json
/root/data/feature/two.json
/root/data/other-feature/one.json
/root/data/other-feature/important-script.php
'/ data/...'パスの下にある.json
ファイルを無視しますが、gitはanyを無視しますが、 '/ data /'サブディレクトリが含まれることがあります。
http://で説明されているように、data/*.json
は*
に一致しないため、gitignoreの単純な/
は1つのディレクトリにのみ一致します。 git-scm.com/docs/gitignore 、「パターン形式」、箇条書き#6:
それ以外の場合、gitはパターンをfnmatch(3)がFNM_PATHNAMEフラグで使用するのに適したシェルグロブとして扱います。パターンのワイルドカードはパス名の/に一致しません。たとえば、「Documentation/*。html」は「Documentation/git.html」と一致しますが、「Documentation/ppc/ppc.html」または「tools/perf/Documentation/perf.html」とは一致しません。
これを行う簡単な方法はありますか、または各サブディレクトリにgitignoreファイルを積極的に追加する必要がありますか?
data/**/*.json
を.gitignore
ディレクトリの/root
に配置して、異なるディレクトリに複数の.gitignore
ファイルを配置しないようにすることができます
**/
-任意のサブディレクトリの数に一致します(現在を含む)
例:data/**/*.json
レコードはdata/1.json
、data/subfolder/2.json
、data/../../3.json
を無視します
このパターンは、pngおよびjpgファイルのみを無視するデータサブフォルダーに対して機能します。
**/data/**/*.png
**/data/**/*.jpg