我们的客户改变了我们的项目之一的一些重要新功能(让我们称之为FA),现在他想要这个功能的一个子集,但以不同的方式集成(让我们称之为FB),然后放入所有初始请求的功能但与FB中所做的更改合并,将从FB中获取重叠更改。
我有这种情况:
现在我从master创建了一个新的分支FB。
我需要整合FA的一些变化,然后做一些工作,然后在FB中完全合并FA,最后将所有变为主分支
最好的方法是做到这一点,不要生气,并保留FA和FB的可能提交历史记录
答案 0 :(得分: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
选项。它将在提交消息中添加用户用户名。
希望它有所帮助。
参考