git cherry-pick
将指定的提交应用到当前分支,不需要合并整个分支
语法
git cherry-pick <commit-hash>
参数
| 参数 | 说明 | 示例 | 级别 |
|---|---|---|---|
-n |
应用更改但不自动提交,方便合并多个提交为一次 | |
常用 |
--abort |
取消 cherry-pick 操作,恢复到操作前状态 | |
常用 |
--continue |
解决冲突后继续 cherry-pick | |
常用 |
-x |
在提交信息中追加来源提交的哈希值 | |
常用 |
-m <parent-number> |
指定合并提交的父编号(用于 cherry-pick 合并提交) | |
常用 |
示例
将指定提交应用到当前分支
git cherry-pick abc1234
依次应用多个提交
git cherry-pick abc1234 def5678
应用一个范围内的提交(不含起始提交)
git cherry-pick abc1234..def5678
应用多个提交但不自动 commit,最后统一提交
git cherry-pick -n abc1234 def5678
应用提交并在信息中记录来源哈希
git cherry-pick -x abc1234
技巧
- 适合从其他分支选择性地引入 hotfix 或特定功能
- cherry-pick 会产生新的 commit hash,不要对同一提交重复 cherry-pick
- 遇到冲突时处理方式和 merge 冲突一样:编辑文件 → git add → git cherry-pick --continue
- 用 -x 标记来源方便后续追溯