テキストファイルのみのホワイトリストを作成しました。
*
!*.txt
これで、サブディレクトリに未追跡のテキストファイルがあります-sub/dir/file.txt
、およびこれは表示されません(無視されます)。ただし、ルートディレクトリ内のテキストファイルは表示されます。
なぜですか、どうすれば修正できますか?
そのように試してみると、構造内のディレクトリをブラックリストに登録してしまうため、失敗します。
解決するには、ディレクトリではなく、コミットしたいファイルタイプではないすべてのものをブラックリストに登録します、ディレクトリをブラックリストに登録しません 。
これを行う.gitignore
ファイル:
# First, ignore everything
*
# Now, whitelist anything that's a directory
!*/
# And all the file types you're interested in.
!*.one
!*.two
!*.etc
リポジトリのルートディレクトリにある.txt
を使用して、*.one
、*.two
、および*.three
ファイルの存在下で、.gitignore
ファイルの3レベル構造ホワイトリストでこれをテストしました。 .gitignore
ファイルを構造内のすべてのディレクトリに追加する必要はありません。
答えを見つけるのに使用した情報は、とりわけ this (stackoverflow.com)からのものでした。