【问题标题】:How can I add the commits of a branch (e.g. rebase) onto two other primary branches?如何将一个分支的提交(例如 rebase)添加到另外两个主要分支上?
【发布时间】:2020-04-21 05:20:40
【问题描述】:

假设我有一个 Python 应用程序的两个分支,threads 使用 threading 模块,process 使用 multiprocessing 模块。这两个分支仅在执行并发任务的方式上有所不同。

现在,假设我创建了另一个分支 feature。如何将feature 的提交添加到threadsprocess,以便threadsprocess 保持最新并包含相同的功能?

【问题讨论】:

  • 您使用的是什么 VCS?吉特?
  • @PrashantKumar - Git,是的。

标签: python git


【解决方案1】:

如果该功能分支涉及子文件夹中的文件,那么您可以考虑将该分支内容(假设所述分支仅包含所述功能所需的文件)作为子模块包含在这两个分支中。

I used to do that for gh-pages branch,例如 GitHub 存储库的 master 分支中的子模块。

但如果不是,如果功能分支是大部分threadsprocess 分支文件加上一些修改,那么您需要将该feature 分支合并两次,合并到threadsprocess分支。

【讨论】:

  • 谢谢。我对 Git 比较陌生。这是我正在尝试做的反模式,还是在开发中是正常的?因此,为了正确理解您的答案,我应该将featurethreadsprocess 合并。为了更好看的提交历史,这里不可能进行变基?
  • @Shuzheng 不是一个好的模式是有两个只有微小差异的分支。理想情况下,这种差异是一个通用代码的一部分,其中一个选项设置为使用线程或进程“模式”。这样,您就可以避免所有“双重合并”部分。
【解决方案2】:

感谢@Shuzheng 澄清。我正在写我从你的问题和之后的回答中理解的内容。

我从你的问题中了解到:

  1. 我有一个分支thread
  2. 我有一个分支process
  3. 现在我创建了一个新分支 feature,将用于开发。

--> 不清楚feature 分支是从什么源/库创建的。

我将如何处理这个问题 -

  1. feature 分支上开发并在那里进行代码更改。
  2. 一旦功能开发完成,我会将git merge 分支featurethreadprocess
  3. 当我第一次这样做时,可能会出现一些merge-conflicts。但是从第二次开始,如果我们保持这个过程,这将是非常简单的 1 分钟工作。

这就像将 feature 分支中所做的更改拉到其他 2 个分支中。

另外,我建议使用一些 IDE 来执行此操作,因为它使合并过程中的可视化非常容易。

【讨论】:

  • 是的,合并到两个分支正是我的回答所说明的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-12
  • 2013-04-19
  • 1970-01-01
  • 2017-02-21
  • 2018-03-12
  • 2019-11-17
  • 2018-08-12
相关资源
最近更新 更多