否定パターン(!で始まる行)で.gitignoreファイルを使用しようとしていますが、期待どおりに機能しません。
最小限の例として、次のディレクトリ構造があります。
C:/gittest
-- .gitignore
-- aaa/
-- bbb/
-- file.txt
-- ccc/
-- otherfile.txt
私のgitignoreファイルには、これがあります:
aaa/
!aaa/ccc/
私の理解( このドキュメントページ に基づく)は、ファイルaaa/ccc/otherfile.txtを無視すべきではないが、実際にはgitはaaaの下のすべてを無視するということです。
私はこの文を誤解していますか?「パターンを否定するオプションの接頭辞!前のパターンによって除外された一致するファイルは再び含まれます。」
ところで、これはWindowsでmsysgit 1.7.0.2を使用しています。
あなたが実際にやりたいことは:
aaa/*
!aaa/ccc
「aaa
を見てはいけない」と言っているので、パスaaa/ccc
を調べることすらありません。ワイルドカードを使用する場合、aaa
の内容は引き続き読み取られますが、各エントリはワイルドカードと一致し、aaa/ccc
を除く無視されます。
git status
を実行する前にgit update-index
に新しく無視されていない項目がまだ表示されていない場合は、gitが変更を確認するのに役立ちます(少なくともバージョン1.9.xのgitbashで)。