我如何 git cherry-pick 从分支 A 到分支 B 的提交,但我在分支 master 中?

how can I git cherry-pick a commit from branch A to branch B but I am in branch master?

我需要从 DEV 到 master、INT(用于内部测试环境)、PROD 分支中挑选一个提交。

如果我每次cherry-pick都需要切换到相应的分支,那么我需要checkout INT,checkout PROD。

我可以只在分支 Master 中挑选一个从 DEV 到 INT,再到 PROD 的提交,但不检出到任何其他分支吗?

非常感谢。

一般不会,不会。 Cherry-picking 在内部实现为一种合并,并且像 Git 中的大多数进程一样合并发生在 当前分支 上,因此必须检查分支在一个工作树中,有一个可以在其中进行合并的索引。

但是,您可以使用 git worktree add添加一个新工作树到任何现有的Git存储库.这个新的工作树必须在其他分支上:不是在主工作树中检出的分支,也不是在任何其他工作树中检出的任何分支。1 但这正是你想在这里。所以只需添加一个位于分支 INT 上的工作树——这将成为你的第二个工作树——以及第三个位于分支 PROD 上的工作树,并在两个添加的工作中执行两个 cherry-pick 操作树木。


1工作树也可以处于“分离 HEAD”模式,但这对您的情况没有帮助。