java git subtree_使用[git subtree]子树合并请求

我们有六个项目使用由submodule处理的一些常见 subprojects ,现在我们选择使用git-subtree .

这些 subprojects 不是独立的,每个都有一个分支 master .

例如,这是 projectA & projectB 项目的样子:

projectA:

|_.git/

|_src/

|_app/

|_plugins

|__subproject1

|__subproject3

|__subproject12

projectB:

|_.git/

|_src/

|_app/

|_plugins

|__subproject3

|__subproject8

我们在这里可以看到 subproject3 在 projectA 和 projectB 之间是常见的 .

Usecase1

projectA 已将 subproject3 从 v1.3.0 演变为 v1.4.0 .

subproject3 仍在项目 projectB 的 v1.3.0 上,并且应该保持一段时间 .

但是,在 v1.3.0 projectB 内发现了一个错误 . 所以 projectB 应该修复而不检索 subproject 的 subproject . 在同一时间, v1.4.0 应该得到与 v1.3.0 相同的修复 .

使用子模块

我们曾经 :

在 subproject3 中创建新分支 hotfix/bla

修复了这个bug

根据修复提交创建标签 v1.3.1

将修补程序合并到master中

创建标签 v1.4.1

切换到 v1.3.1

在 projectB 中提交新的 subproject3 版本

之后,我们在项目 projectA 中将 subproject3 的版本设置为 v1.4.1 .

这是 subproject3 ( projectB 内)给出的 git log --decorate --all --graph .

* f923c0d (tag: v1.4.1, origin/master, origin/HEAD, master) Merge branch 'hotfix'

|\

| * cb8213d (HEAD, tag: v1.3.1, origin/hotfix, hotfix) fix #4.1

* | bfb3008 (tag: v1.4.0) [plug1] #8

* | 25ccbbd [plug1] #7

* | ff22c34 #6

* | cb9f3ab #5

|/

* 1e750fe (tag: v1.3.0) #4

使用git-subtree

projectB 将 subproject3 设置为 master^^^^ ,而 projectA 将 subproject3 设置为 master . (不需要git-subtree插件上的标签)

所以,我们:

修复 projectB 内的错误

为 projectB 创建git提交

push to master失败,这是正常的,所以我们推送到一个新的分支 hotfix

在gitlab( hotfix -> master )上创建合并请求并手动接受:(

现在主人又安然了

这确实有效,但令我们恼火的是我们无法避免手动处理步骤4 . AFAIK,没有办法在git-subtree中自动化它 .

总而言之,我们对git-subtree非常满意,因为它允许我们(几乎)不会在git提交等方面处理插件,因为我们通过git-hooks自动化 git subtree push .

但是,手册 step 4 已经离开,到目前为止我们无法自动化它 . 有时,我们的一些开发人员忘记创建合并请求,因此 master 仍然容易受到攻击 .

有没有办法自动化 step 4 (理想情况下通过git-subtree)?我们有什么选择?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值