2

私のリポジトリには、次のディレクトリ構造があります。

/
|-dir1
|    |-file1
|    |-file2
|    |-file3
|-dir2
|    |-file4
|    |-file5.derp
|    |-file6
|-dir3
     |-file7
     |-file8

私の.gitignoreファイル(ルートにあります)は次のとおりです。

dir2/
!dir2/*.derp

しかし、file5.derpによって発見されることはありませんgit add...

ここで何が欠けていますか?

4

2 に答える 2

2

次のような.gitignoreを試してください。

dir2/*
!dir2/*.derp

gitignoreのマニュアルページごと:http ://www.kernel.org/pub/software/scm/git/docs/gitignore.html

パターンがスラッシュで終わっている場合は、以下の説明のために削除されますが、ディレクトリとの一致のみが検出されます。つまり、foo /はディレクトリfooとその下のパスに一致しますが、通常のファイルやシンボリックリンクfooには一致しません(これは、一般的にgitでpathspecが機能する方法と一致します)。

そのディレクトリ内のすべてのファイルを無視し、!を使用してチェックするポイントに到達していないのではないかと思います。

于 2013-02-13T17:22:30.833 に答える
1

あなたはそれを次のようにする必要があります:

dir2/*
!dir2/*.derp

あなたが試したことではdir2/、明らかに、ディレクトリを無視し、gitは.derpファイルを無視しないためにそのディレクトリに降りることはありません。上記の場合、それ自体ではdir2なく、のすべての子を無視します。その後、ファイルを無視しません。dir2dir2/*.derp

于 2013-02-13T17:19:34.890 に答える