我试图创建一个忽略所有.jar文件的gitignore文件,除非它们位于名为libs的文件夹中。这是我的基本文件结构:
-.gitignore
-libs/
-goodFile.jar
-someFolder/
-subFolder/
-alsoGood.jar
-otherCode/
-fileToExclude.jar
-otherOtherCode/
-otherSubfolder/
-alsoExclude.jar
目前在.gitignore我尝试过:
*.jar
!libs
!libs/
!libs/*
!libs/**
!libs/**/
!libs/**/*.jar
!libs/*.jar
自己,组合,甚至全部。他们都没有工作。我发现这样做的唯一方法是将另一个.gitignore文件放入libs/
(我希望避免使用)或者为每个可能级别的子目录使用!libs/*/*/*.jar
行。有没有办法让它忽略除libs中的所有罐子?
答案 0 :(得分:22)
怎么样:
*.jar
!libs/**/*.jar
订单很重要。
修改强>
我使用了您的项目结构,并在完成git add
和git status
$ git stat
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: .gitignore
new file: libs/goodFile.jar
new file: libs/someFolder/subFolder/alsoGood.jar
new file: libs/someFolder/subFolder/test/anotherFolder/test.jar
$ cat .gitignore
*.jar
!libs/**/*.jar