【问题标题】:How to add a maven child module to .gitignore如何将 maven 子模块添加到 .gitignore
【发布时间】:2020-03-01 04:05:35
【问题描述】:

我正在尝试设置一个脚本来自动将更改从开发分支重新定位到包含 Maven 子模块的分支。

这个项目的设置方式是开发分支包含父模块。所有更改都转到该模块,因此合并到开发分支。为了让子模块获得这些变化,必须重新基于开发。子模块本身不应该在 rebase 中修改。

当我尝试使用我的脚本将子分支重新定位到开发时,我得到一个冲突,指出子模块已在开发分支上被删除。这是有道理的,因为该模块在开发中不存在。我需要 rebase 来忽略与子模块有关的任何事情,所以我在项目中的 .gitignore 中添加了这一行:

*_module/

每个子模块的命名约定在末尾都有'_module',因此使用*,那么每个分支应该能够忽略有问题的子模块,无论名称如何。然而,这并没有奏效。我还没有找到任何关于这个用例的信息,我想知道是否有人对如何继续有任何建议。

这里是开发分支的大体文件结构:

project+
       |
       +-src+ #parent module
       |    |
       |    +-main #where changes to the code occure
       |
       +.gitattributes
       |
       +.gitignore
       |
       +pom.xml

这是带有子模块的分支的结构:

project+
       |
       +-test1_module+ #child module in maven.  Need to ignore this in .gitignore, or some equivalent
       |             |
       |             +-src+ 
       |                  |
       |                  +-assembly
       |                  |
       |                  +-main
       |
       +-src+ #parent module
       |    |
       |    +-assembly
       |    |
       |    +-main 
       |
       +.gitattributes
       |
       +.gitignore
       |
       +pom.xml

编辑: 需要明确的是,我不想从 git 存储库中删除这个子模块;我只是想在变基期间忽略或跳过对它的任何更改。

【问题讨论】:

    标签: git maven parent-child gitignore git-bash


    【解决方案1】:

    .gitignore 只能忽略未跟踪的内容。

    所以每个分支应该需要:

    git rm -r --cached test*_module
    echo "*_module/">>.gitignore
    

    然后添加并提交。
    那么变基不会产生任何冲突。

    但是:这不是 OP 所追求的,这意味着 .gitignore 无论如何都不是解决方案。

    在这种情况下,rebase 脚本应该需要,在发生冲突时(对于子模块),

    • accept changes from "theirs"(通过,git checkout -- theirs -- test1Module)。
    • 添加和恢复变基 (git add .; git rebase --continue) 这假设 maven 模块可以通过 maven 依赖项自动获取,这意味着它不必在父存储库中进行版本控制。

    【讨论】:

    • 我不认为这就是我要找的。当我运行此命令时,它会从存储库中删除子模块。我不能丢失那个子模块;我只需要在变基期间忽略对它的任何更改。
    • @SVill 我理解:我只是说明.gitignore 仅适用于未跟踪 内容,因此git rm
    • @SVill 我已经编辑了答案以提出另一种方法。
    猜你喜欢
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 2018-04-23
    相关资源
    最近更新 更多