【发布时间】:2018-07-26 10:36:12
【问题描述】:
我有以下分支。
A 分支:主分支或主分支。
B 分支:从 A 创建。
C 分支:从 B 创建。
D 分支:从 A 创建
现在我对分支 C 做了一些更改,现在我可以将它们合并到分支 B。但是此时从分支 A 创建了一个新分支 D,现在我应该将我的更改合并到分支 D。如何获取所有我对分支 D 的更改?由于我有很多提交,我无法一一挑选它们。我试图在分支 C 上重新设置分支 D,但我遇到了很多无法手动解决的冲突。那么将分支 C 合并到分支 D 的最佳方法是什么?
编辑 1:
让我再澄清一下我的问题。这里分支 A 是主分支。分支 B 是一个发布分支(刚刚结束,因此该分支现在处于活动状态)。分支 C 是我从 B 中切出的主题分支,分支 D 是从 A 中切出的新发布分支。理想情况下,我们应该只将主题分支合并到发布分支,然后将这些更改挑选到主分支 (A)。所以我们创建一个当前发布分支的主题分支然后进行更改并提出合并请求。我们不应该向非活动发布分支添加任何内容。现在我在一个分支 C 上工作,该分支 C 是从一个已变为非活动状态的发布分支 B 中删除的。现在我应该从 D 创建一个分支并在那里添加我的所有更改并提出一个合并请求。我不想那样做。我想使用我的分支 C 在不会有任何冲突的分支 D 上提出合并请求。有可能吗?
我的解决办法是:
我会在分支 B 之外创建一个临时分支 B_temp。Squash 将我的主题分支 C 合并到 B_temp。然后从 D 中创建一个新的分支 E,从 B_temp 中挑选提交到分支 E,解决任何合并冲突(我可以解决这些冲突,因为它们只是我的更改)。将 F 的合并请求提升到分支 D。如果我可以简单地使用旧分支 C,我想知道是否有更好的解决方案,而不是创建新分支和樱桃采摘。
注意:未经适当的合并请求和批准,我们不允许合并主分支和发布分支中的任何内容。
【问题讨论】:
-
直接从branchC创建合并请求到branchD有什么问题?
-
如果 branchB 是一个完整的发布分支,它是否会被合并到 master 中?
-
我想直接从branchC到branchD创建MR,但是branchC是从branchB创建的,所以如何首先将branchD的更改变为branchC,如果我将brachD重新设置为branchC它会提供很多冲突。那就是问题所在。 branchB 永远不会合并到 master,而是 branchB 中的每个提交都被挑选到 master 中。也就是说,我们将我们的主题分支合并到发布分支,并且单个提交被挑选出来掌握。
-
MR是什么意思?
-
"如果我将 brachD 重新设置为 branchC 会产生很多冲突。"这可能是因为
branchC和branchD都修改了相同的文件。当你变基时,你必须适当地编辑文件来解决这些冲突。
标签: git github merge version-control