30

さまざまな種類のファイルを含む1つのディレクトリツリーがあります。親ディレクトリには300個のディレクトリがあります。各ディレクトリには、他のサブディレクトリを含めることができます。

すべてのサブディレクトリで*.cocciのみを追跡したい。これが私の.gitignoreです:

*
!*.cocci

ただし、サブディレクトリ上のファイルは追跡されないため、機能しません。すべてのサブディレクトリで*.cocciのみを追跡したいことをgitに伝えるにはどうすればよいですか?

4

4 に答える 4

44

この質問を読んでください。

あなたが欲しい:

# Blacklist everything
*
# Whitelist all directories
!*/
# Whitelist the file you're interested in. 
!*.cocci 

これはファイルのみ を追跡することに注意してください*.cocciすべてを無視するため(これが最初の行です)、すべてのサブディレクトリを無視するため、機能しません。

于 2012-10-09T16:11:11.497 に答える
5

@simontの回答を拡張するため *.cocciに、特定のディレクトリとそのサブディレクトリのファイルをホワイトリストに登録したい場合は、誤って次のように入力します。

directory/*
!directory/*/
!directory/*.cocci 

*.cocciの下にファイルが含まれていないようですdirectory/subtree

*.cocciのすべてのサブディレクトリ内のすべてのファイルを検索するdirectoryには、次のように入力します。

directory/**
!directory/*/
!directory/**/*.cocci 
于 2017-05-10T12:32:21.890 に答える
2

.gitignoreでディレクトリの無視を解除することはできませんが、手動でディレクトリ!dirを追加することは可能です。

git add dir -f

したがって、.gitignoreファイルが次のようになっている場合:

*
!*.txt

次に、git add .新しい*.txtファイルを作成すると、追加されます。新しいディレクトリは自動追加されません。手動で追加する必要があります。git add dir -f

于 2017-02-24T00:00:49.517 に答える
0

!*/*.cocci代わりに試しました!*.cocciか?

于 2012-10-09T12:31:34.747 に答える