将一个分支中的多个提交合并到主分支中的Git rebase

3
当我在git文档中读到rebase命令时,有一个问题。 是否可以将主题“next”中的三个提交 x x x 变基到主分支(master)?
  o---o---o---o---o  master
           \
            o---o---x---x---x  next

合并到

  o---o---o---o---o---x---x---x  master
           \
            o---o  next
2个回答

4

你需要执行两个步骤。首先,使用rebase --ontonext中的最新三个提交合并到master分支上:

master:  o1 -- o2 -- o3 -- o4 -- o5
                       \
next:                   o6 -- o7 -- x1 -- x2 -- x3

使用:

git rebase --onto o5 o7

然后,从next分支中删除前3个提交:

# from next
git reset --hard HEAD~3

不错的 git rebase --onto o5 o7 - Nitsan Avni

3
为此,我建议使用git cherry-pick命令来获取master上的新提交,同时使用git reset --hard命令来清除next上的这些提交。脚本示例如下:
git switch master
git cherry-pick next~2 next~1 next~0
git switch next
git reset --hard HEAD~3

1
请记住,o 提交可能会改变 x 提交的实际操作,因此您可能无法得到预期的结果,或者需要进行一些手动编辑以使其正确。 - Liam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接