【发布时间】: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