.gitignore はフォルダーを除外しますが、特定のサブフォルダーを含めます 質問する

.gitignore はフォルダーを除外しますが、特定のサブフォルダーを含めます 質問する

フォルダー がありapplication/、それを に追加します.gitignore。 -フォルダー
内にはapplication/フォルダー がありますapplication/language/gr

このフォルダを含めるにはどうすればよいですか?

私はこれを試しました:

application/
!application/language/gr/

ベストアンサー1

を除外するとapplication/、その下にあるものはすべて常に除外されます (それ以降の否定除外パターン (「unignore」) が の下にあるものと一致する場合でもapplication/)。

希望どおりの動作を行うには、「無視解除」したいすべての親ディレクトリを「無視解除」する必要があります。通常、この状況のルールはペアで記述することになります。つまり、ディレクトリ内のすべてを無視するが、特定のサブディレクトリは無視しないというルールです。

# you can skip this first one if it is not already excluded by prior patterns
!application/

application/*
!application/language/

application/language/*
!application/language/gr/

注:
末尾は/*重要です:

  • パターンは、dir/という名前のディレクトリdirと、(暗黙的に)その下にあるすべてのものを除外します。
    を使用するとdir/、Git は の下にあるものを参照することはなくdir、したがって の下にあるものに「除外解除」パターンを適用することもありませんdir
  • パターンはそれ自体dir/*については何も述べていませんdir。 の下にあるすべてを除外するだけですdir。 を使用するとdir/*、Git は の直接の内容を処理しdir、他のパターンにコンテンツの一部を「除外解除」する機会を与えます ( !dir/sub/)。

おすすめ記事