我有一个包含复杂结构的文件夹( 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
答案 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