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

Ek *_*mos 10 git branch git-rebase git-branch git-interactive-rebase

我有以下情况:

                          K---L new-feature
                         /
                H---I---J dev-team1
               /
              E---F---G dev-main
             /
A---B---C---D master
Run Code Online (Sandbox Code Playgroud)

而且我想在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
Run Code Online (Sandbox Code Playgroud)

Ash*_*son 12

git rebase有一个--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
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参见"git rebase"手册页.(我还想添加一个-i只是为了检查我正在移动我认为我的提交.)

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

git checkout dev-main
git cherry-pick K L
Run Code Online (Sandbox Code Playgroud)