Git Ignores和Maven目标

sga*_*gan 114 git version-control maven-2 gitignore

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

我想要排除具有多个子模块的maven项目中的所有"目标"文件夹.我知道我可以在顶级.gitignore中明确排除它们中的每一个,但是我真的希望能够指定像**/target/*这样的模式让它自动忽略子目录中的实例吗?

这可能吗?

Dom*_*ell 213

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

.classpath
.project
.settings/
target/
Run Code Online (Sandbox Code Playgroud)

这是一个多模块maven项目.使用m2eclipse将所有子模块作为单独的eclipse项目导入.我没有其他.gitignore文件.确实,如果你查看gitignore手册页:

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

所以这对你有用.

  • 这是比'*/target/*'更好的答案.它确实排除了目录树中任何位置的目录.但它不适用于文件(请参阅http://stackoverflow.com/questions/971465/git-ignore-certain-files-contained-in-specific-folders) (5认同)
  • 如果你继续阅读它说"这些模式相对于.gitignore文件的位置匹配." 你的衣服错了...... (3认同)
  • 我使用这种方法并使用“target/”来忽略所有 Maven 构建文件夹,但是请注意,您可能会忽略位于路径中包含“target”文件夹的包中的代码。(在具有以下类的项目中:`src/main/java/org/example/game/archery/bow/LongBow.java`和`src/main/java/org/example/game/archery/target/Target。 java`,你会发现使用这样的 .gitignore 配置你的 LongBow 没有什么可打的:-) ) (2认同)

bau*_*ack 94

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

  • 对于多模块项目,您可能希望使用_**/target/_,但请注意不要在源中排除合法的"目标"目录 (6认同)
  • 谢谢!对于其他任何人来说,.gitignore的内容是为了跳过因使用的maven&eclipse嫌疑人.target/**/target/*.metadata*tar.gz .classpath .project*/.settings/* (4认同)
  • 您使用什么配置来完成这项工作?*/.settings/*只会忽略'xxx/.settings/*',而不是'.settings/*'或'xxx/yyy/.settings/*':忽略模式似乎不是递归应用的.另请参见http://stackoverflow.com/questions/971465/git-ignore-certain-files-contained-in-specific-folders. (3认同)

Tom*_*zyk 6

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

/target/**
Run Code Online (Sandbox Code Playgroud)

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

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