同様の質問 ( 1、2、および3 ) を見たことがありますが、それらから適切な解決策が得られません。
特定のファイルの種類を除いて、特定のフォルダーの下にあるすべてのファイルを無視する必要があります。フォルダは、ルート パスのサブディレクトリです。フォルダに名前を付けましょうResources
。複雑にしたくないので、名前が付けられているすべてのフォルダーの下にあるファイルは、Resources
どこにあっても無視します。
これは最も一般的な解決策です(すべての重複した質問で)
# Ignore everything
*
# Don't ignore directories, so we can recurse into them
!*/
# Don't ignore .gitignore
!.gitignore
# Now exclude our type
!*.foo
このソリューションの問題は、新しく追加されたファイルの追跡を停止することです(*
すべてのファイルを無視するため)。すべてのファイルタイプを除外し続けたくありません。新しいファイルが追加された場合にそれをgit status
表示する通常の動作が必要です。
私はついにここで解決策を得ました。解決策は、フォルダーに別の.gitignore
ファイルを追加することです。Resources
これは正しく動作します。
1つの無視ファイルで同じことを達成できますか? さまざまなディレクトリに多数の無視ファイルがあると、少しぎこちなくなります。
これは私が達成しようとしているものです:
# Ignore everything under Resources folder, not elsewhere
Resources
# Don't ignore directories, so we can recurse into them
!*Resources/
# Now exclude our type
!*.foo
しかし、これは反対の出力を与えます。タイプを無視し*.foo
、他のファイルを追跡します。