如何忽略未忽略文件夹中的文件类型

时间:2016-07-08 17:43:36

标签: git

我有一个包含复杂结构的文件夹( mainRoot )。除了文件夹( 来源 )及其所有子文件夹和文件外,所有内容都会被忽略。

除此之外,它还要忽略未被忽略的文件夹中所有具有特定扩展名( .cache )的文件及其所有子文件夹和文件(的来源)。我怎么能这样做?

!.gitignore
mainRoot/*
!mainRoot/sources/
!mainRoot/sources/*
!mainRoot/sources/**/*

#everything is fine till this point. 
#my intuition calls of an ignore like this
#but it doesn't seem to work

mainRoot/sources/*.cache
mainRoot/sources/**/*.cache

2 个答案:

答案 0 :(得分:0)

提供的示例允许您忽略所有.cache个项目。

git init
subl .gitignore #Added supplied .gitignore
mkdir mainRoot
mkdir mainRoot/sources
touch mainRoot/sources/foo.cache
mkdir mainRoot/sources/bar
touch mainRoot/sources/bar/bar.cache
touch mainRoot/sources/bar/keep.me
git add --all
git status

这给出了:

On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   .gitignore
    new file:   mainRoot/sources/bar/keep.me

您可能已经将这些文件添加到了您的仓库中。摆脱它们:

git rm mainRoot/sources/*.cache --cached

然后提交更改。

答案 1 :(得分:0)

如果你没有指定一个文件夹,那么它会在任何文件夹中忽略它,所以你只需要在你的.gitignore中忽略所有以.cache扩展名结尾的文件:

*.cache