1. ホーム
  2. git

[解決済み] .gitignoreでフォルダを除外し、特定のサブフォルダを含めることができます。

2022-03-18 05:17:07

質問

私は、フォルダー application/ に追加しています。 .gitignore . その中で application/ フォルダーは application/language/gr . このフォルダをインクルードするにはどうしたらいいですか?

私はこれを試してみました

application/
!application/language/gr/

運悪く...

解決方法は?

を除外した場合 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/* の直接の内容を処理します。 dir で、他のパターンにコンテンツの一部を「除外しない」チャンスを与えます ( !dir/sub/ ).