【问题标题】:Git merge one branch into two other branchesGit 将一个分支合并到另外两个分支
【发布时间】:2013-11-09 02:52:22
【问题描述】:

如何将一个分支合并到另外两个分支?

这是我们的场景:我们使用两个分支 master 进行生产,使用 UAT 进行测试。 所有本地开发都是在由 Master 制成的新分支上进行的,因此在开始做某事之前,我们从 master 创建一个分支,提交并将其推送到 origin/master。 对于更大的项目,我们使用 UAT 进行测试。

我有一个准备好进行测试然后推送到生产的分支。如何将该分支移至 UAT,以便人们对其进行测试,并在测试后将同一分支从我的本地机器或从 UAT 移至 Master?

【问题讨论】:

  • 这是一个技巧问题吗?答案取决于您的组织使用的工作流程。在某些组织中,您可能会推送到 origin/UAT,然后您或其他人将从 UAT 合并到 master(但这听起来像是一个糟糕的工作流程)。在其他组织中,您可能会在特定于您正在做的工作的服务器上创建一个新分支,有人会在该分支上创建该分支,然后将其合并到其他地方。最好的答案是询问与您一起工作的人您的网站政策是什么。

标签: git github git-merge


【解决方案1】:

这正是 git 的用处!在 master 的一个分支上开始你的开发,我们称之为“Feature”。然后,当您准备好进行测试时,将您的更改提交到您的功能分支并执行以下操作:

git checkout UAT
git merge Feature

TEST TEST TEST

git checkout master
git merge Feature
git push origin master

这将使您的测试代码同时进入 UAT 和 master 分支

【讨论】:

  • 假设masterUAT 在处理Feature 之前已经存在一些差异。 (假设有一些 UAT 没有的 master 提交)。在处理Feature 之后,git checkout UAT, git merge Feature 是否也将先前的差异合并到 UAT 中?
  • 我查过了。
  • 这会将 master 中的所有更改合并到 UAT 中!
【解决方案2】:

您可以使用 git cherry-pick 将分支添加到您的 UAT 分支。

【讨论】:

  • 樱桃采摘的问题在于,您对樱桃采摘和未采摘的可见性非常有限。这可能是多个人一起工作的大型分支机构的问题。根据我的经验,在这种情况下合并会好很多
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-21
  • 2019-01-04
  • 2010-12-15
  • 2017-08-04
  • 1970-01-01
相关资源
最近更新 更多