さまざまな種類のファイルを含む1つのディレクトリツリーがあります。親ディレクトリには300個のディレクトリがあります。各ディレクトリには、他のサブディレクトリを含めることができます。
すべてのサブディレクトリで*.cocciのみを追跡したい。これが私の.gitignoreです:
*
!*.cocci
ただし、サブディレクトリ上のファイルは追跡されないため、機能しません。すべてのサブディレクトリで*.cocciのみを追跡したいことをgitに伝えるにはどうすればよいですか?
さまざまな種類のファイルを含む1つのディレクトリツリーがあります。親ディレクトリには300個のディレクトリがあります。各ディレクトリには、他のサブディレクトリを含めることができます。
すべてのサブディレクトリで*.cocciのみを追跡したい。これが私の.gitignoreです:
*
!*.cocci
ただし、サブディレクトリ上のファイルは追跡されないため、機能しません。すべてのサブディレクトリで*.cocciのみを追跡したいことをgitに伝えるにはどうすればよいですか?
この質問を読んでください。
あなたが欲しい:
# Blacklist everything
*
# Whitelist all directories
!*/
# Whitelist the file you're interested in.
!*.cocci
これはファイルのみ を追跡することに注意してください*.cocci
。すべてを無視するため(これが最初の行です)、すべてのサブディレクトリを無視するため、機能しません。
@simontの回答を拡張するため *.cocci
に、特定のディレクトリとそのサブディレクトリのファイルをホワイトリストに登録したい場合は、誤って次のように入力します。
directory/*
!directory/*/
!directory/*.cocci
*.cocci
の下にファイルが含まれていないようですdirectory/subtree
。
*.cocci
のすべてのサブディレクトリ内のすべてのファイルを検索するdirectory
には、次のように入力します。
directory/**
!directory/*/
!directory/**/*.cocci
.gitignoreでディレクトリの無視を解除することはできませんが、手動でディレクトリ!dir
を追加することは可能です。
git add dir -f
したがって、.gitignoreファイルが次のようになっている場合:
*
!*.txt
次に、git add .
新しい*.txt
ファイルを作成すると、追加されます。新しいディレクトリは自動追加されません。手動で追加する必要があります。git add dir -f
!*/*.cocci
代わりに試しました!*.cocci
か?