繁体   English   中英

Git从一个分支到另一个分支

[英]Git rebase from one branch to another

我有以下情况:

                          K---L new-feature
                         /
                H---I---J dev-team1
               /
              E---F---G dev-main
             /
A---B---C---D master

而且我想在dev-main分支中只移动新功能 (K --- L)分支而没有(H --- I --- J)形式dev-team1

                H---I---J dev-team1
               /
              E---F---G---K---L dev-main
             /
A---B---C---D master

git rebase有一个--onto参数--onto您的需要。

git checkout new-feature
git rebase --onto dev-main dev-team1

# Now new-feature has commits K' and L' after G in dev-main.
git checkout dev-main
git merge --ff-only new-feature

有关更多详细信息,请参见“git rebase”手册页 (我也想添加一个-i ,以便仔细检查我正在移动我认为我的提交。)

你也可以使用git cherry-pick ,特别是如果提交的数量很少:

git checkout dev-main
git cherry-pick K L

你可以挑选K和L提交。

git checkout dev-main
git cherry-pick K

如果您有冲突,请修复它们,然后执行

git cherry-pick --continue
git cherry-pick L

修复冲突。

您还可以使用交互式rebase。

git rebase -i head~5

在打开的编辑器中,替换HI和J提交行

pick F
pick G

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM