我们在两个分支中维护我们应用程序的两个版本:free
和master
(master
是我们应用程序的高级版本)。这些分支非常相似,但是该master
分支有一些free
版本没有的额外应用程序功能,因此我们需要保持这两个分支持续运行。
定期我们需要修复错误或向free
分支添加功能,我们需要在完成后将其应用到master
分支。当我有这样的工作要做时,我会开始一个基于free
调用的新分支,例如newfeature
. 当我完成这个功能时,newfeature
有 X 个新的提交。
在我newfeature
重新合并之前,free
我想知道我可以使用什么命令从newfeature
现在需要应用到的所有提交中生成补丁master
。目前,我只是这样做:
git format-patch aa99f9..e94904
据我所知,我必须实际查找分支时的具体提交 ID newfeature
,以及最后一次提交newfeature
,这是一个拖累。我对提交 ID 不感兴趣,我不想输入它们。
我希望有一个我可以持续使用的命令,git 将找出我正在谈论的提交。每次都是相同的模式:给定分支newfeature
,我想生成一个从共同祖先newfeature
到free
最新提交newfeature
的提交补丁。
是否有一些变更集表达式可以避免手动查找提交 ID 的需要?
PS:AFAIK,我不能git rebase
用来执行此任务,因为这会将整个free
分支合并到master
. 我只想将newfeature
分支独有的提交合并到master
.