2016-12-11 15 views
3

特定の拡張子を持つファイル以外のすべてのファイルを無視するにはどうすればよいですか?Gitは特定の拡張子を除くすべてのファイルをサブディレクトリ下でも無視します

例:私のおもちゃ "リポジトリ"

./foo.xyz 
./tmp/foo.xyz 
./tmp/foo.arg 
./.gitnore 

私は次のことを試してみましたfoo.xyzとTMP/foo.xyzを維持したいが、

をfoo.argない:

# gitignore file 
*                           
!*/                           
!.gitignore 
!*.xyz 

ただし、foo.argは無視されません:(

ここで何らかの種類の再帰的パターンがあれば助けてください細いサブディレクトリをお願いします。

+0

はファイル 'foo.arg'を含み、あなたのレポにコミットありますか? – JSelser

+0

貼り付けたテキストには、 '.gitignore'の2行目の' * 'の後と3行目の'!*/'の後ろに空白がたくさんあります。それらは実際のファイルにありますか?末尾のスペースは無視されますが、末尾の* tabs *は存在しません。したがって、そこに空白がある場合、実際にすべてのスペースですか、あるいは他の形式の空白ですか? – torek

+0

どのような状況で解決策のためのこのラインの考えを促しましたか? –

答えて

2

あなたの質問にあるようにファイルが./.gitignoreで、./.gitnoreではないことを確認してください(単純な入力ミスかもしれません)。

ファイルが無視されていることを確認するには、無視されているファイルを取り出し、git check-ignore -v -- afileと入力します.Gitignoreファイルが実際に有効かどうかを確認します。

ない場合は、試してみてください。

git rm --cached -r . 
git add . 
git commit -m "apply .gitignore" 
+0

'git check-ignore'が私の問題を解決しました。 .gitignoreファイルに私が質問に示していない別のルールがあり、そのルールは実際にfoo.argを許可していました。 'git check-ignore'は私にルールを示しました。どうもありがとう!!! – jmborr

1

これは.gitignoreファイルです:私はあなたがgitのにファイルを追加し、コミット考える

/Debug/  ignore a folder and all subdirectories. 
/Release/ 
*.sdf  ignore all files in this format. (all in project directory) 
sample.txt ignore a file. 

。今それを無視しようとしています。 できません。 gitから削除してください。

関連する問題