在使用 git
时有些场景不能使用完全合并 git merge
,比如开发分支是 develop
,生产分支是 master
,在 develop
上提交了2个 commit
,本打算一起上线推送到 master
,但零时要将前一个测试已经通过的 commit
提前先上线,那就需要单独合并这一个 commit
,这个就需要使用 git cherry-pick
命令来实现。
在上面这种使用场景下,先切换到 develop
分支,执行 git log
命令:
git checkout develop
git log
会出现类似这样的结果
commit 626afa1dc79f51bf8276190c5fd297fd21fa269e (HEAD -> develop, origin/develop)
Author: aa88 <88888@gmail.com>
Date: Wed Jul 22 15:32:15 2020 +0800
线上面试提示用谷歌浏览器访问
commit 07b4141924a6fcf36934b63bd3593b6b2063053d
Author: aa88 <88888@gmail.com>
Date: Wed Jul 22 15:20:08 2020 +0800
feature:微信机器人
复制一下你要合并的那个 commit
,这里我们需要的是微信机器人这个,就复制 07b4141924a6fcf36934b63bd3593b6b2063053d
这部分。
切换到需要合并到的分支 master
;并运行 git cherry-pick
命令,后面跟上刚才复制的那个 commit
:
git checkout master
git cherry-pick 07b4141924a6fcf36934b63bd3593b6b2063053d
运行 git push
将这个 commit
推到分支上:
git push
这样,我们就完成了从一个分支上单独合并某个 commit
到另一个分支的操作了。