Git忽略和Maven目标


117

任何人都知道是否有可能忽略git管理的文件结构中特定目录的所有实例。

我正在寻找排除带有多个子模块的Maven项目中的所有“目标”文件夹。我知道我可以在顶级.gitignore中显式排除它们中的每一个,但是我真的很希望能够指定一个类似** / target / *的模式来让它自动忽略子目录中的实例?

这可能吗?


您采用什么配置进行这项工作?/.settings/只会忽略“ xxx / .settings / *”,而不会忽略“ .settings / *”或“ xxx / yyy / .settings / *”:忽略模式似乎不是递归应用的。另请参见stackoverflow.com/questions/971465/…
VonC

Answers:


98

可以在.gitignore文件中使用模式。请参见gitignore手册页。该模式*/target/*应忽略任何名为target的目录及其下的任何内容。或者您可以尝试*/target/**忽略目标下的所有内容。


4
谢谢!对于其他任何人,这里都是.gitignore的内容,以跳过惯常的Maven和Eclipse嫌疑犯。target / * / target / .metadata tar.gz .classpath .project *
/。settings

3
您采用什么配置进行这项工作?/.settings/只会忽略“ xxx / .settings / *”,而不会忽略“ .settings / *”或“ xxx / yyy / .settings / *”:忽略模式似乎不是递归应用的。另请参见stackoverflow.com/questions/971465/…
VonC

6
对于多模块项目,您可能需要使用** / target /,但要注意不要在源文件中排除合法的“目标”目录
Bogdan 2015年

1
/target/**在工作\.git\info\exclude文件中的好。
阿披耶特(Abhijeet)2015年

刚刚尝试使用其中一个模块中的“ target”子包提交一个Java项目。:(
okutane

222

.gitignore根目录的文件确实适用于所有子目录。我的看起来像这样:

.classpath
.project
.settings/
target/

这是在多模块Maven项目中。使用m2eclipse将所有子模块导入为单独的Eclipse项目。我没有其他.gitignore文件。确实,如果您查看gitignore手册页

.gitignore与路径相同的目录中或任何父目录中的文件读取的模式…

所以这应该为您工作。


5
那是比' / target / ' 更好的答案。它不会排除目录树中位于目录的任何位置。但它不会对文件的工作(见stackoverflow.com/questions/971465/...
VonC

3
如果继续阅读,则会显示“这些模式相对于.gitignore文件的位置匹配”。您的answear是错误的...
user1387219

我使用这种方法,并使用“ target /”忽略所有的Maven构建文件夹,但是要小心,有可能忽略位于其路径中包含“ target”文件夹的软件包中的代码的风险。(在具有以下类的项目中:src/main/java/org/example/game/archery/bow/LongBow.javasrc/main/java/org/example/game/archery/target/Target.java,使用这样的.gitignore配置,您的LongBow不会受到任何打击:
Cristiano Costantini

4

正如Abhijeet的评论中已经指出的那样,您可以仅添加以下行:

/target/**

排除的文件\.git\info\夹中。

然后,如果要target删除远程存储库中的该文件夹,则需要首先从本地存储库中手动删除此文件夹,提交并推送。那是因为git会首先显示修改后的目标文件夹的内容。



0

从所有不良文件中添加以下行到gitignore中

/target/
*/target/**
**/META-INF/
!.mvn/wrapper/maven-wrapper.jar

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
/nbproject/private/
/build/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.