【问题标题】:Git - how to merge additional branch changes after branch has been 'merge --squash'edGit - 如何在分支“合并 --squash”后合并其他分支更改
【发布时间】:2013-01-25 16:27:13
【问题描述】:

情况:我有一个主题分支已被压缩为 master。然后,我向主题分支添加了一些额外的提交,并希望将这些额外的提交合并到 master 中。有没有办法做到这一点?

图表:

master A - B - F

             \

topic          C - D - E (squashed into F) - G - H

问题——如何将 G 和 H 放到 F 上?

我从Rebasing after squash merge? 得到的结论是在一个 squash 之后更新主题分支父级,以便一起避免这种情况。我现在要摆脱困境的解决方案是创建一个包含我的新更改的补丁并将此补丁应用到 master,但是这样做我会丢失提交历史记录,所以它并不理想。

谢谢!

【问题讨论】:

  • 我没有检查过,但你有没有再次尝试简单地“git merge --squash”?据我记得,壁球合并是基于内容的,所以它应该可以工作。测试一下!
  • 这会导致先前压缩的提交和新更改之间的合并冲突,所以我认为这不起作用。感谢您的建议。
  • @Jeranimot 你见过stackoverflow.com/questions/14343711/… 吗?
  • @Borealid 谢谢——没见过。有道理。

标签: git merge squash


【解决方案1】:

如果我对你的理解正确的话,这样做的方式就是采摘樱桃:https://ariejan.net/2010/06/10/cherry-picking-specific-commits-from-another-branch

【讨论】:

  • 不知道樱桃采摘——这当然比使用补丁更可取。我认为这是可以在这里完成的最好的事情,因为挤压似乎会导致未来分支合并出现合并问题,所以我一定要在挤压合并后重置分支父级。谢谢!
【解决方案2】:

再次合并。

squash 或 no-squash 都可以。没有壁球会创建合并提交。

【讨论】:

猜你喜欢
  • 2017-08-14
  • 1970-01-01
  • 1970-01-01
  • 2018-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-06
  • 1970-01-01
相关资源
最近更新 更多