gpt4 book ai didi

Git:生成在 "feature"分支上进行的所有提交的补丁,而不引用提交 ID

转载 作者:太空狗 更新时间:2023-10-29 14:20:53 28 4
gpt4 key购买 nike

我们在两个分支中维护我们应用程序的两个版本:freemaster(master 是我们应用程序的高级版本)。这些分支非常相似,但是 master 分支有一些 free 版本没有的额外应用程序功能,因此我们需要持续维护这两个分支。

我们通常需要修复错误或向 free 分支添加功能,完成后我们需要将其应用到 master 分支。当我有这样的工作要做时,我将在 free 的基础上开始一个新的分支,例如 newfeature。当我完成功能时,newfeature 有 X 个新提交。

在我将 newfeature merge 回 free 之前,我想知道我可以使用什么命令从 newfeature< 中包含的所有提交生成补丁 现在需要应用于 master。目前,我只是这样做:

git format-patch aa99f9..e94904

据我所知,我必须实际查找分支 newfeature 时的特定提交 ID,以及 newfeature 中的最后一次提交,这是拖累。我对提交 ID 不感兴趣,我不想输入它们。

我希望有一个我可以始终如一地使用的命令,git 会在其中找出我正在谈论的提交。每次都是相同的模式:给定分支 newfeature,我想从 newfeaturefree 的共同祖先生成提交补丁code>newfeature最新提交。

是否有一些变更集表达式可以避免手动查找提交 ID 的需要?

P.S.:据我所知,我不能使用 git rebase 来完成这项任务,因为这会将整个 free 分支 merge 到 master 上。我只想将 newfeature 分支独有的提交 merge 到 master 上。

最佳答案

具体来说,您的要求是:

git format-patch `git merge-base newfeature free`..newfeature

这样做可能会节省一些时间:

git checkout master
git cherry-pick `git merge-base newfeature free`..newfeature

根据您的工作流程,您可能只需要在 merge 功能之前创建补丁。即:

git checkout newfeature
git rebase free
git format-patch free

这听起来确实不错,但您的工作流程可以通过简单地将免费功能作为高级功能并将免费功能 merge 到高级分支中来改进。

关于Git:生成在 "feature"分支上进行的所有提交的补丁,而不引用提交 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10889774/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com