回答:
ドキュメントから:
パターンにスラッシュ/が含まれていない場合、gitはそれをシェルグロブパターンとして扱い、.gitignoreファイルの場所を基準にしたパス名との一致をチェックします(.gitignoreからでない場合は、作業ツリーのトップレベルを基準にして)ファイル)。
先頭のスラッシュはパス名の先頭と一致します。たとえば、「/ *。c」は「cat-file.c」と一致しますが、「mozilla-sha1 / sha1.c」とは一致しません。
したがって、次の行をルートに追加する必要があります.gitignore。
/config.php
/folder/?
/folder/または/folder動作しますが、両端にスラッシュを追加すると、フォルダのみにマッチを制限します。ルートディレクトリに「foo」という名前のファイルがある場合/foo/、それ/fooは無視されませんが、無視されます。
git rm --cached <file>します。それ以外の場合、ファイルは無視されません。From:stackoverflow.com/a/1274447
を使用し/config.phpます。
古いバージョンのgitでは、最初に無視パターンを定義し、すぐに(次の行で)除外を定義する必要があります。[バージョン1.9.3(Apple Git-50)でテスト済み]
/config.php
!/*/config.php
それ以降のバージョンでは、以下のみが必要です[バージョン2.2.1でテスト済み]
/config.php
上記の解決策がうまくいかない場合は、これを試してください:
#1.1 Do NOT ignore file pattern in any subdirectory
!*/config.php
#1.2 ...only ignore it in the current directory
/config.php
##########################
# 2.1 Ignore file pattern everywhere
config.php
# 2.2 ...but NOT in the current directory
!/config.php
/config.php一人ではうまくいきませんでした。なぜそうしなかったのか、私は興味があります。アイデアはありますか?
~/.gitignore自分のマシンに別のファイルを持っているかどうかによって、リポジトリの動作が異なる可能性があることを意味しますよね。