git cherry-pick 命令允许你从版本库历史中的任何地方选择一个或多个特定提交,并将它们作为新提交应用到当前分支上。
1. 用法
git cherry-pick <commitHash>...
1.1 Pick 单次提交
如果您的 Git 仓库有两个分支(main 和 feature):
a - b - c - d - e HEAD -> main
\
f - g - h feature
要将 f 提交从特性分支应用到当前分支,请使用:
git cherry-pick f
然后,提交 f 将被重放并作为新提交添加到当前分支中。
a - b - c - d - e - i HEAD -> main
\
f - g - h feature
i 提交是一次新的提交。提交哈希值与 f 不同,但改动相同。
1.2 Pick 多次提交
要在 git 仓库中应用多个提交,请使用提交列表:
git cherry-pick f g h
Git 仓库会是这样的:
a - b - c - d - e - i - j - k HEAD -> main
\
f - g - h feature
如果您需要挑选一长串提交,则无需写下每个提交的哈希值。只需使用:
- f..h(从
f的下一个提交直到h) - f^..h(从
f到h)
1.3 使用分支名
与使用 <commitHash> 挑选特定提交不同,你可以直接使用 <branch-name> 作为目标,使用分支名就能挑选特定分支的最新提交。
对于前面的例子,只需使用 git cherry-pick feature,它就会将 h 提交应用到当前分支。
1.4 解决冲突
如果 git cherry-pick 命令遇到冲突,需要先解决冲突。
然后将已解决的文件添加到暂存区域,并使用 git cherry-pick --continue 命令继续。