2017-01-19 21 views
0

へのコンテンツフォルダはので、私はラインを入れました。インデックス除外親フォルダ

しかし、除外したくない「通常の」フォルダ(もちろんフォルダ/ファイルのコンテンツ)が1つあります。

私は行を追加してみてください:

!files/normal/* 

をしかし、それは動作しません。

どうすればいいですか?助けてくれてありがとう

.gitignoreファイル:

vendor 
files 
!files/normal   # not work 
.htaccess 
.htpasswd 

構造:最近まで、空

└───offres 
    ├───normal 
    └───unique 

gitの状態(ちょうど.gitignore)

modified: ../.gitignore 
+0

「動作しません」とはどういう意味ですか? –

+0

これは、 "normal"フォルダの内容がまだ無視されていることを意味します。 – Macbernie

+0

両方のルールから '/ *'を削除してみてください。 –

答えて

0

、ディレクトリを無視しますそれを見ていないことを意味するディレクトリを無視することを意味するのでその内容は決して(他の)規則と照合されませんでした。パスを免除すると、親ディレクトリもその無視ファイル内のルールの目的で免除されますが、gitのバージョンが最近のものではないようです。

files/* 

filesにディレクトリfiles/normal含むをすべて無視。だから、files/normalは無視されたディレクトリであり、files/normalでは何もテストされていません - すべてfiles/normal/anythingのルールは決してチャンスを得ることはありません。

このため通常の万能修正worktreeあまりにも広大なされていませんが、それは上記の言っていることに関係なく、「言わないあなたの.gitignoreの下、ドンで

!*/ 

を追加することです/**で末尾の/*を置き換えて、明示的にワイルドカード無視のマッチを新しく無視された深さに拡張することができます。これはデフォルトではありません。なぜなら、作業木は実際に深い泥だらけであり、無駄にスキャンすると永続的な迷惑なスピードバンプが生成される可能性があるからです。

あなたの一番下に、

files/* 
!files/normal 

(または同等を使用して、この特定のものを修正すること。gitignore、)だけ

!*/ 

を配置し、その後、明示的にあなたが本当に即決、完全に無視するか任意のディレクトリをリスト

+0

説明をありがとう、しかし私はあなたのexempleで試みるeverythinkが失敗したので、私は全く何も理解していないようです。 .gitignoreの内容はどうすればいいですか? – Macbernie

0

この試してみてください:あなたは/*を入れていない場合は

files/*    # excludes everything under dir `files`. Note that "/*" allows you to un-exclude a subfolder inside dir `files`  
!files/normal/  # un-excludes dir `files/normal` and (implicitly) everything under it. 

をディレクトリfilesでは、は除外は後で動作しません。

関連する問題