0

我们的客户改变了对我们的一个项目的一些大的新功能(我们称之为 FA)的想法,现在他想要这个功能的一个子集,但以不同的方式集成(我们称之为 FB),然后将所有初始请求功能,但与 FB 中所做的更改合并,重叠更改将从 FB 中获取。

我有这种 git 情况:

  • 具有稳定版本的 master 分支,现已投入生产
  • FA分公司

现在我从master创建了一个新的分支FB。

我需要整合 FA 的一些更改,然后做一些工作,然后将 FA 完全合并到 FB 中,最后将所有内容放到 master 分支

什么是最好的方法来做到这一点而不会变得疯狂并尽可能保留来自 FA 和 FB 的提交历史

4

1 回答 1

0

您可以将FA分支cherry-pick中的一些提交提交到您的FB中。使用您可以选择要从FA中取出的提交并将它们集成到您的FB中。cherry-pick

假设您在您的FB分支上,并且想要集成一些来自FA的提交。

首先,您将获得FA分支上所有提交的列表

git log --oneline

现在,当您获得所有提交时 - 在您的显示器上显示 SHA 和提交消息

git checkout FB

git cherry-pick SHA

您也可以将--edit标签传递给上述指令。它将允许您编辑提交消息。

另一个需要注意的有用的事情是,您可以使用选项cherry-pick进入暂存区域。--no-commit这会将精心挑选的提交放入暂存区。此时,您可以修改暂存区域并部分或全部提交。

如果你想跟踪你从哪里挑选樱桃。您可以添加-x选项。这会将源 SHA 添加到提交消息。此外,如果您想跟踪谁选择了哪些樱桃,请使用--signeoff选项。它将在提交消息中添加用户用户名。

希望能帮助到你。

参考

樱桃采摘

于 2016-08-10T09:29:25.843 回答