它可以用于将在其他分支上的 commit 修改,移植到当前的分支
1.查看dev分支上的log 需要移植的commitid
$ git log
commit 06b4758442f36ca705a83c3670c72dbd968e6a41 (HEAD -> dev)
Author: = <793127910@qq.com>
Date: Fri Nov 19 13:36:50 2021 +0800
feature:增加周设置
2.切换分支
$ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
3. git cherry-pick commitid
$ git cherry-pick 06b4758442f36ca705a83c3670c72dbd968e6a41
[master 36e7a64] feature:澧炲姞鍛ㄨ缃? Date: Fri Nov 19 13:36:50 2021 +0800
2 files changed, 20 insertions(+), 7 deletions(-)
4.查看日志
$ git log master
commit 36e7a645f8f84daceb1988aa4ddd897b00f4f755 (HEAD -> master)
Author: = <793127910@qq.com>
Date: Fri Nov 19 13:36:50 2021 +0800
feature:增加周设置
1.
git cherry-pick -x <commit_id>
增加 -x 参数,表示保留原提交的作者信息进行提交
2.
需要pick多次提交时,可以一次一次cherry-pick ,但是要按照提交顺序执行
也可以使用区间 (左开, 右闭] commitid要按提交顺序;不会将需要需要pick的提交合并未一个提交
git cherry_pick <start-commit-id> <end-commit-id>
3.
git cherry_pick <start-commit-id>^ <end-commit-id>
^ [左闭,右闭]
连续pick多个提交时可能会有多个冲突
<master|cherry-picking>
git status 查看冲突文件
解决冲突
cherry-pick --continue
下一个冲突
。。。
pick全部完成