【问题标题】:Keeping an alt branch up to date with common使 alt 分支与 common 保持同步
【发布时间】:2016-06-19 14:21:52
【问题描述】:

我的存储库有两个分支:commonaltcommon 分支包含对大多数人来说是最常见用例的代码版本。 alt 分支包含项目的一个版本,其中一些配置不同,但大多数配置与common 相同。

到目前为止,我一直很高兴地在我的机器上进行开发,将错误修复和开发应用到 common 分支,然后将这些更改重新定位到 altalt 有一些我不会退回到 common 的提交。这些更改与common 上的更改完全垂直,因为alt 只是添加和删除了一些文件。

举个例子,在我更改了common 中的一些内容但还没有将它们重新定位到alt 之后,代码可能看起来如何。

A -- B -- C -- F   (common)
     \
      `-- D -- E   (alt)

在变基之后:

A -- B -- C -- F              (common)
     \
      `-- C --- F -- D -- E   (alt)

但是,我最近在 github 上发布了该项目,并在那里发布了两个分支。看来我不能再使用 rebase 来使 altcommon 保持同步,因为我每次都这样做:

  • common 中编辑内容并提交
  • 结帐altgit rebase common
  • git push github alt

这表示alt 的本地分支落后于远程分支,现在我总是需要先拉取并合并。这会产生很多杂乱无章的合并提交,我认为这些提交是不必要的(它们的差异是空的)。

如何更好地管理我的分支,以便将common 中的更改拉入alt,以便我也可以将commonalt 保留在github 上?

【问题讨论】:

  • 维护多个长期存在的分支很痛苦(正如您所发现的那样)。您应该非常喜欢单个分支,并使用配置选项来区分这两个变体。
  • 这种技术叫做feature toggles
  • 是的,但由于它是一个样板项目,我认为这并不适用。拆分 repo 也是不行的,因为共享了很多代码。

标签: git rebase


【解决方案1】:

我会推荐看看gitflow
http://nvie.com/posts/a-successful-git-branching-model/

此工作流程旨在回答您需要对多个分支进行少量更改的工作流程。

如何?

gitflow 只是一组脚本,您可以根据需要随意配置。

下图描述了默认脚本(工作流程):

【讨论】:

  • Gitflow 不是为任意工作流设计的,它是为 Gitflow 分支模型设计的。
  • 同意,但除了修改脚本之外,我没有看到任何其他方法。其他选项是手动管理它,这不是更好的选择。所以我会在 gitflow 上进行自定义修改
猜你喜欢
  • 2013-11-14
  • 1970-01-01
  • 2013-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-11
  • 2015-04-20
  • 2017-01-16
相关资源
最近更新 更多