0

我有以下分支:

master
featureA
featureB

在多个 git 存储库上。开发同时发生在所有三个分支上。我需要将featureA合并到featureB中,最后将featureB合并到master中。目前我做:

切换到featureB并从featureA合并。切换到master并从featureB合并。此过程涉及 2 个开关,由于我需要为大约 7 个存储库执行此操作,因此需要一些时间。

有没有更好的方法使用 git 来做到这一点?

4

6 回答 6

1

这听起来有点不正常。如果您有六七个开发人员都在开发 featureA 或 featureB,那么他们应该已经相互同步了。也就是说,在开发过程中,它们相互推/拉或通过指定的中央存储库间接地推/拉。这就是他们在开发功能时协同工作的方式。

在这种情况下,唯一剩下的是:

# your 4 steps
git checkout featureB
git merge featureA
git checkout master
git merge featureB

在此之后,每个开发人员都拉出 master,他们可以删除 featureA 和 featureB 或者直接放弃它们。

开发继续进行,每个开发人员都从 master 创建新的功能分支

于 2013-04-14T12:12:59.867 回答
1

您需要在 7 个存储库中的每一个上执行两个步骤。听起来像是编写 shell 脚本以在每个 repo 中为您运行必要的 git 命令的好案例。只要你的仓库是分开的,我不认为 git 本身对你有什么好处。您还可以考虑通过“子模块”连接它们(尽管我不确定它是否会有所帮助)。

于 2013-04-14T11:25:35.323 回答
1

Git 本身并没有太多简化多个分支合并的方式。为此,我编写了一个名为 Cascade 的小型 CLI。

Casecade-CLI:https ://www.npmjs.com/package/cascade-cli

您提到的工作流程似乎非常常见、烦人,并且可能有些耗时。CLI 将从主机中提取每个分支(如果可用)、合并,然后将每个分支推回主机(如果可用)。它仍处于起步阶段,但我计划扩展其功能并希望解决这个反复出现的问题。

用法:

cascade merge <head> <toBranches...>

例子:

cascade merge featureA featureB master 
于 2018-07-04T04:31:32.230 回答
0

尝试运行此命令:

  • git结账大师
  • git 合并特征A 特征B

您可以一步合并所有您想要的分支。只需创建一个合并链:

  • git 合并 abcde

将合并当前分支中的分支 a、b、c、d 和 e。

如果其中一个主题导致冲突,则合并失败。明显地。

于 2017-05-29T00:29:30.800 回答
0

我推荐的合并顺序如下。

//merge master to featureA
git checkout master
git merge featureA

//merge featureA to master
git checkout featureA
git merge master

//merge master to featureB
git checkout master
git merge featureB

//merge featureB to master
git checkout featureB
git checkout master

这样,featureA 和 featureB 的修改都被安全地合并到 master 中。此外,即使事先有任何主修改,也不会发生合并丢失。

但是,顺序很复杂。这就是为什么如果手动操作可能会出错。好像有自动下单的工具,请用谷歌搜索。

于 2017-05-28T08:12:27.137 回答
0

您可能想要使用自动shell 合并脚本或查看如何合并组合两个 repos。

于 2021-02-18T09:02:47.333 回答