我怎么可以轻松地合并不同的功能分支机构?

0

的问题

我有一个开放的公关的一个分支称为 feature-b 很快就会被合并到 main. 然而,我写的,它以支持我的 feature-a 分支,这是正在进行的。 我想继续工作 feature-a 和杠杆作用的工作我有没有在 feature-b 在它之前已被合并到 main.

什么是最好的方式为我要这么做吗? 我们的将来 main 被压扁了,因此所有提交上 feature-b 将被改写作为一个单一承诺,当它是合并到 main. 因此,变基 feature-afeature-b 现在将会导致在未来冲突的痛苦,当我合并 feature-amain 因为同样的修改会已经在不同的提交。

什么是最好的方式对我来说,包括改变 feature-bfeature-a 分,同时尽量减少未来的痛苦,当我最后的合并 feature-amain?

更新

我继续:

  1. 罢了 feature-afeature-b
  2. 作出更多的更改(只有1commit) feature-afeature-b 正在审查
  3. 壁球合并 feature-b 一旦获得批准(没有进一步变化的需要,所以 feature-a 已经精确的代码合并)
  4. 拉最新的 main 和罢了 feature-a 在它的顶部

作为的担心,git抱怨说,几个文件是"两个修改"或"两者加入". 这就是有点烦人,但简单的解决。 什么使得它非常令人困惑,尤其是如果任何通道的时间已经过去了-是的合并意见的文件。

虽然两个 mainfeature-a 分支机构具有 完全相同的代码 所有文件中,我得到超级讨厌的行为:

  1. 对于"两者加入"的文件,合并意见,添加对"头部(目前的变化)"和"父母的#哈希(提交信息)". 我被迫选择一种或另一种,即使他们是一模一样!
  2. 对"这两个经修改的"文件,它甚至更糟。 "头部(目前的变化)"表示了正确的代码。 然而,"父母的#哈希(提交信息)"部分中表示的一半代码。 再次, 虽然两个分支机构的所有代码! 我不骗你,接受"的来变化"(作为标记的通过VS代码)将删除的代码,在这两种分支!

如果我不得不作出的这些变化迅速,我们会无可救药的丢失和困惑什么git是表示我。 这确实已经发生了几次在过去,但我不能把手指放在什么是错误的。 现在,我再现这种和验证的行为,我完全不知如何是好,什么git这样做,人们是如何处理这种情况。

更新2

好吧,我看看为什么它要消除的代码。 这是因为我所做的更改在 feature-b 在多承诺,这些承诺结束了被压扁的时合并 main 发生。 这是毫无疑问的该来源的痛苦和为什么我试图找出一个理智的工作流程。

git
2021-11-23 23:26:24
1

最好的答案

0

我不相信最后的合并/南瓜将是混乱的。 如果同样的改变正在取不同的提交,也许Git可以检测,并很乐意与它。

如果你不认为这将是混乱的,虽然,你可以做的是:

  1. 衍合你 feature-a 分支 feature-b 现在,让你 feature-a 分现在包括已完成的要素B和正在进行的一个特征,这是你需要做什么你的工作。
  2. feature-b 被合并到 main 分支,变基 feature-a 到立即提交 之前 的压扁的承诺,他们作为特征B.这应该顺利进行。
  3. 在您的 feature-a 分,使用 git reset --soft X 哪里 X 是的承诺散列为被压扁的承诺,他们作为特征B.然后使用 git commit 做一个提交。 现在你有一个被压扁的提交,其内容是平等的当前状态的工作在功能A.但这次提交的父的承诺,增加的特征B的主要分支,因此这种承诺的差异与父母将 包含要素A.它是好的,继续工作在功能上的一个在这一点上,或只要求一个合并。

通过这种方式,我相信事情会不需要这种混乱如果您的组织使用的合并,而不是rebases以添加的东西的主要分支。 然后会有益于保留的实际历史的代你的工作上,而不是仅仅保留这种人为的历史记录。

2021-11-23 23:52:54

到是清楚的,我们不使用rebases-我们使用压扁提交。 我99%确定的事情 是混乱的,因为我已经试过这个在过去。 Git得到可怕的混淆,由不同的承诺作出同样的变化。 我愿意再次尝试虽然报告:)
me--

@我-我肯定被压扁的承诺是一个变基
evolutionxbox

衍合装置移动的分支,因此它开始一个不同点,重写历史,它是如何发展。 挤压装置改变的整个分支的成只是一承诺,抛弃历史上它是如何发达,除了最终结果。
David Grayson

@DavidGrayson请参阅我的更新问题对于解释行为我看到从饭桶。
me--

"确定"。 你的步骤4("拉的最新主和罢了功能在它的顶部")是是什么导致你所有的痛苦,所以它不是东西,我会推荐这样做。 而不是做这一步骤4你的问题,试图中的步骤2和3从我的答案。
David Grayson

谢谢@DavidGrayson. 它似乎如此。 . . 费力
me--

就像我说的在我的回答,问题是造成人做所有这种阅读和挤压而不是简单的合并。
David Grayson

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................