.gitignore忽略了具有相同名称的其他目录

时间:2014-10-12 17:00:32

标签: git gitignore

我的.gitignore有问题。 我希望它只是忽略'vendor /'目录,但它忽略了具有该名称的所有目录。

以下是我的.gitignore:

.idea/ 
bin/ 
vendor/ 
composer.lock 
composer.phar 

以下是我的'git status'的结果:

Changes not staged for commit: 
   (use "git add <file> ..." to update what will be submitted) 
   (use "git checkout - <file> ..." to discard changes in working directory) 

modified: .gitignore 

Not monitored files: 
   (use "git add <file> ..." to include what will be submitted) 

src/vendor/ 
tests/src/ 
vendor/ 

它也忽略了'src / vendor',我不希望这种情况发生,我希望它忽略'vendor /'

2 个答案:

答案 0 :(得分:32)

来自文档for Git Ignore

  

前导斜杠与路径名的开头匹配。例如,/*.c匹配cat-file.c但不匹配mozilla-sha1/sha1.c

尝试将vendor/更改为/vendor/

答案 1 :(得分:2)

来自Git - gitignore Documentation

  

“如果模式以斜杠结尾,则为了以下描述的目的将其删除,但它只会找到与目录的匹配。换句话说,foo /将匹配目录foo和其下的路径,但是不会匹配常规文件或符号链接foo(这与在Git中一般使用pathspec的方式一致)。“

     

“如果模式不包含斜杠/,Git会将其视为shell glob模式,并检查相对于.gitignore文件位置的路径名的匹配(相对于工作树的顶层)来自.gitignore文件)。“

只需删除/

即可
.idea 
bin 
vendor 
composer.lock 
composer.phar