目录
- 1. 命令
- 2. 操作说明
1. 命令
同步一个提交的命令:git cherry-pick -x 提交id
同步多个提交的命令:git cherry-pick -x 提交id1 提交id2 提交id3 ...
-
-x
可加可不加,一般建议加,因为我们这次的提交会产生新在commit ID
,加了-x
他会在提交信息的末尾追加一行(cherry picked from commit ...)
,方便以后查到这个提交是如何产生的。 -
同步多个提交时要注意,提交较早的
commit ID
要放在前面,比如commitIDA
比commitIDB
提交早,那么同步的时候就要这样:git cherry-pick -x commitIDA commitIDB
官方文档:https://git-scm.com/docs/git-cherry-pick
2. 操作说明
演示将 dev 分支上的一个或者多个提交把他给提交到 master 分支上
1、现在去 dev
分支上找到这个提交的 commit ID
2、切换成 master
分支, 切换命令 git checkout master
3、把要同步过来的提交合到当前分支
git cherry-pick -x 5aecfa1ac1d1bd665d53f9f733395563ecdb5846
# 合并多个提交到当前分支, 要注意提交较早的commit ID 要放在前面
# 这里 d73d8e55 就比 5aecfa1 提交早所以它在前面
git cherry-pick -x d73d8e55cc551c5e2af398eb89830e6d3d97852f 5aecfa1ac1d1bd665d53f9f733395563ecdb5846
4、就可以把本地的提交给提交到远程仓库了 git push origin master
5、如果要取消这次 cherry-pick
则使用,这种情况下当前分支恢复到 cherry-pick
前的状态,没有任何改变。
git cherry-pick --abort