git rebase
has an --onto
argument that does what you need.
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
See the man page for "git rebase" for more details. (I also like to add a -i
just to double check that I'm moving the commits that I think I am.)
You could also use git cherry-pick
, especially if the number of commits is small:
git checkout dev-main
git cherry-pick K L