首页 > 解决方案 > 将当前分支中的更改推送到其他分支

问题描述

我现在在dev分支上工作。早些时候,我featureX从分支创建了一个分支dev,从那时起我对dev分支进行了 15 次提交。现在我想要分支中的所有这 15 个提交featureX,以便我的featureX分支也可以拥有我上周在dev分支中完成的所有工作。

我对 , 等命令感到非常rebase困惑rebase --onto。我应该使用其中之一吗?

标签: gitrebasegit-commit

解决方案


听起来有 3 个 git 命令可能会有所帮助:rebasecherry-pickmerge.

变基

集成分支的最简单方法......是合并命令。它在两个最新的分支快照之间执行三向合并......以及两者的最新共同祖先......,创建一个新的快照(和提交)。

但是,还有另一种方法:您可以获取引入的更改补丁......然后在顶部重新应用它。在 Git 中,这称为变基。使用 rebase 命令,您可以获取在一个分支上提交的所有更改并在另一个分支上重放它们。

在您的示例中,您可以执行以下操作:

git checkout featureX
git rebase dev
# continue your development on the featureX branch

# if there are conflicts, resolve them, and then continue with
git rebase --skip

# when done with changes, do:
git checkout dev
git merge featureX

樱桃采摘

应用一些现有提交引入的更改。

在您的示例中,您可以执行以下操作:

git checkout dev
git cherry-pick ^HEAD dev

合并

将一个分支的更改合并到另一个分支。

在您的示例中,您可以执行以下操作:

git checkout featureX
git merge dev

所有示例和摘录均来自文档:

进一步阅读:


推荐阅读