【问题标题】:Git Ignores and Maven targetsGit 忽略和 Maven 目标
【发布时间】:2010-11-02 18:29:53
【问题描述】:

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

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

这可能吗?

【问题讨论】:

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

标签: git maven-2 version-control gitignore


【解决方案1】:

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

【讨论】:

  • 谢谢!对于其他人来说,.gitignore 的内容是跳过通常的 maven 和 eclipse 嫌疑人。目标/* /target/ .metadata tar.gz .classpath .project */.settings/
  • 您使用什么配置进行这项工作? /.settings/ 只会忽略 'xxx/.settings/*',而不是 '.settings/*' 或 'xxx/yyy/.settings/*':忽略模式似乎不是递归应用。另见stackoverflow.com/questions/971465/…
  • 对于多模块项目,您可能希望使用 **/target/,但请注意不要在源中排除合法的“目标”目录
  • /target/**\.git\info\exclude 中工作。
  • 刚刚尝试在其中一个模块中提交一个带有“目标”子包的 java 项目。 :(
【解决方案2】:

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

.classpath
.project
.settings/
target/

这是一个多模块的 Maven 项目。所有子模块都使用 m2eclipse 作为单独的 eclipse 项目导入。我没有更多的.gitignore 文件。确实,如果您查看gitignore man page

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

所以这应该适合你。

【讨论】:

  • 这是比“/target/”更好的答案。它确实排除了位于目录树中的目录。但它不适用于文件(请参阅stackoverflow.com/questions/971465/…
  • 如果你继续阅读它会说“这些模式与 .gitignore 文件的位置相匹配。”你的回答是错误的......
  • 我使用这种方法并使用“target/”来忽略所有 maven 构建文件夹,但是请注意,您可能会忽略位于路径中包含“target”文件夹的包中的代码。 (在具有以下类的项目中:src/main/java/org/example/game/archery/bow/LongBow.javasrc/main/java/org/example/game/archery/target/Target.java,您不会发现使用这种 .gitignore 配置的 LongBow 没有什么可打的 :-))
【解决方案3】:

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

/target/**

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

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

【讨论】:

    【解决方案4】:

    我从 git 忽略了位于目标文件夹中的所有类。 在打开的 .gitignore 文件中添加以下行:

    /.class

    */目标/**

    它对我来说非常有效。试试看。

    【讨论】:

      【解决方案5】:

      在 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/
      

      【讨论】:

        【解决方案6】:

        对于 Spring Tool Suite,将以下忽略资源添加到 .gitignore 文件并提交到存储库中

        *.classpath
        *.class
        *.prefs
        *.jar
        *.lst
        *.project
        *.factorypath
        *.original
        target/
        .settings/
        .apt_generated
        .sts4-cache
        .springBeans
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-12-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-04
          相关资源
          最近更新 更多