Git cherrypick进行上一次提交

时间:2019-03-08 12:22:21

标签: git

我有一个像这样的git commit树,

commit1(HEAD->master)
commit2(origin/master)
commit3

现在我必须从另一个分支中挑选一个提交,这样 提交树应类似于

commit1(HEAD->master)
cherrypicked commit
commit2(origin/master)
commit3

如何执行此操作?

2 个答案:

答案 0 :(得分:3)

所以你有

   ... C ... <--(other_branch)
 /
x ... A <--(origin/master)
       \
        B <--(master)

首先要做的是像往常一样将樱桃C摘下,

   ... C ... <--(other_branch)
 /
x ... A <--(origin/master)
       \
        B -- C' <--(master)

然后进行交互式变基

git rebase -i origin/master master

您将看到一个TODO列表,其中origin/mastermaster之间的每次提交都有一行。交换BC'的行,然后保存并退出。

答案 1 :(得分:0)

首先创建一个从原点/母版开始的分支

git checkout origin/master
git checkout -b wip-reordering

然后使用gitk樱桃拣选所需顺序的所有项目。

gitk --all .

您可以使用右键单击和上下文菜单来选择当前分支

检查这是您想要的水(如果没有,请从另一个分支开始)

有了所需的配置后,将master分支设置为新分支的头

git branch -f master

最主要的是,在您的工作阶段,您处于分支机构中,并且不会直接影响原始工作状态。这意味着您可以一次又一次尝试,直到满意为止。

清理wip-**分支。