2016-08-10 48 views
0

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

我有这个混帐情况:

  • 主分支的稳定版本,现在是生产
  • FA分支

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

我需要整合从FA一些变化,然后做了一些工作,后来在FB,并在年底完全合并FA把所有到主分支

什么是做到这一点的最好办法没有变得疯狂和维护如果可能的话,从FA和FB

回答

0

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

说你对你的FB分支,要提交一些从FA整合。

首先,你要对你的FA分支得到所有提交的名单

git log --oneline 

现在,当你拿到所有提交的 - 在你的显示器SHA的提交信息

git checkout FB 

git cherry-pick SHA 

您也可以将--edit标记传递给上述说明。它将允许您编辑提交消息。

另一个有用的东西要注意,你可以将cherry-pick转换成中转区域使用--no-commit选项。这将把樱桃采摘的承诺放入暂存区。此时您可以修改暂存区域并部分或全部提交。

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

希望它有帮助。

参考

cherry-pick

+0

它不是那么简单......我需要挑选不是来自提交的所有更改 – giammin

+0

@giammin请参阅上面的更新:) –