2013-05-27 7 views
5

.gitignoreファイルの* .userのような単純なパターンは、ファイルのフォルダ名と一致するようです。gitignore * only *ファイルの方法は?

ringods$ mkdir TestIgnore 
ringods$ cd TestIgnore/ 
ringods$ git init 
Initialized empty Git repository in /Users/ringods/Projects/hostbasket/TestIgnore/.git/ 
ringods$ git status 
# On branch master 
# 
# Initial commit 
# 
nothing to commit (create/copy files and use "git add" to track) 
ringods$ mkdir security.user 
ringods$ touch security.user/file_may_not_be_ignored.txt 
ringods$ git status 
# On branch master 
# 
# Initial commit 
# 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
# security.user/ 
nothing added to commit but untracked files present (use "git add" to track) 
ringods$ echo "*.user"> .gitignore 
ringods$ cat .gitignore 
*.user 
ringods$ git status 
# On branch master 
# 
# Initial commit 
# 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
# .gitignore 
nothing added to commit but untracked files present (use "git add" to track) 

私は間違った予想をしていますか? ファイルを無視してファイルを無視する方法をとし、末尾が.blahのフォルダが一致しないようにするにはどうすればよいですか?

gitignore man pageには、シェルのグロブパターン機能を使用してパターンが一致していると記載されていますが、ファイルのみまたはファイルとディレクトリが一致するかどうかはわかりません。

答えて

18

.gitignoreパターンはディレクトリエントリまたはパスと一致します。 「通常のファイルにのみ一致する」と言う特別な方法はありませんが、末尾に/を指定するとパターンはディレクトリにのみ一致します。これを使用して、2つのパターンを使って、非ディレクトリ(ほとんどあなたが望むもの)と一致させることができます:

*.user  # ignore all paths ending in '.user' 
!*.user/ # but don't ignore these paths if they are directories. 
関連する問題