分支无法合并时,把指定提交"摘"到另一个分支
实际开发项目中会涉及到多个分支,如 project1 分支(项目 1 分支)、project2 分支(项目 2 分支)等等,多个分支由于版本问题、时间问题等等原因,项目分支代码无法合并(如果能合并,直接使用 merge 了)。
但是此时 project1 项目中有某些提交,在 project2 项目中也要用到:假设 project1 项目中 commit1、commit2 两次提交,project2 项目也需要使用这部分代码,而分支无法合并,这时就需要使用 cherry-pick(俗称"摘樱桃")。
git log
不使用 VSCode,用 git log 也可以查询到。
git cherry-pick commit-id1 commit-id2
(commit-id1 / commit-id2 换成项目中的具体 id)
git cherry-pick 命令会在 project2 分支形成一次提交:
| 情况 | 结果 | 处理 |
|---|---|---|
| 无冲突 | 自动提交成功 | 无需额外操作 |
| 有冲突 | cherry-pick 暂停,等待处理 | 解决冲突 → git add → git cherry-pick --continue |