如何忽略Git中某个目录及其子目录中的某种文件类型?

时间:2011-09-28 05:37:04

标签: git

如何只在一个目录及其子目录中忽略某个文件类型?

解释我的意思是对以下设置进行成像

  • anotherdir /
    • seeme1.iml
  • foldertoignore /
    • ignoreme1.iml
    • seeme3.txt
    • anotherignorefolder /
      • ignoreme2.iml
      • seeme4.txt
  • seeme5.iml

我希望能够做的是告诉git(使用.gitignore文件)忽略* .iml但仅在 foldtertoignore 目录下。

我以为这会起作用

foldertoignore/*.iml

但是只找到 ignoreme1.iml 而不是 ignoreme2.iml

我知道如何告诉它忽略* .iml,除了特定的目录。这与此相反。有什么想法吗?

2 个答案:

答案 0 :(得分:8)

.gitignore规则从包含目录递归应用。只需使用foldertoignore/.gitignore作为内容创建文件*.iml

>>foldertoignore/.gitignore echo '*.iml'
git add foldertoignore/.gitignore
git commit -m 'Ignore .iml files in foldertoignore and its subfolders'

答案 1 :(得分:1)

你可以试试这个:

/foldertoignore/**/*.iml

根据我认为的操作系统中的fnmatch实现,它可能有效,也可能无效。替代方案是:

*.iml
!/anotherdir/*.iml
!/*.iml