[英]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.