首页 > 解决方案 > 有没有办法 git cherry-pick ONTO 另一个分支?

问题描述

我从事的项目具有更类似于反复无常的工作流程,您可以将单个提交提交以供审核并自行完成。Github 要求您为此有一个分支。所以总是有这种多余的一次提交一个分支的舞蹈你必须做。

因此,如果我正在处理一组相关但不相关的更改,我更愿意在等待审查和登陆的同时将它们放在一个分支上。例如

commit1 <--HEAD
commit2
commit3
commit4 <--master

但我必须把这些作为

commit1 <--commit-one-branch
commit4 <--master

commit2 <--commit-two-branch
commit4 <--master

ETC...

漫长无聊的过程是创建一个提交一到三的分支,然后

git checkout -b worktree
git checkout -b commit-one-branch master
git cherry-pick commit-one
git push myrepo commit-one-branch
git checkout worktree

等等......如果您必须在任何时间点修改更改,这显然会变得更加丑陋。

我真正想要的是或某些东西从顶部和sgit publish <commit> <parent> --branch <branch-name>开始创建一个新分支并为您创建分支,以便您可以推送它。<parent>cherry-pick<commit>

我可以很容易地写这个,但我认为其他人必须在我之前考虑过这个。有任何想法吗?

标签: gitgithub

解决方案


但我认为其他人必须在我之前考虑过这一点。

我对此表示怀疑,因为这不是 Git 的使用方式,也不是拉取请求/合并请求的完成方式。

您只创建一个分支并将提交(在您的情况下,如果您真的想要一个提交)推送到远程 PR 分支,从而触发 PR/MR 审查。

一旦审查完成并将提交合并到目标分支(比如 master),您可以在 master 之上重新设置本地 PR/MR 分支并继续处理它。


推荐阅读