在 Git 的文档中,对于cherry-pick
指令的描述如下:
git cherry-pick
命令用来获得在单个提交中引入的变更,然后尝试将作为一个新的提交引入到你当前分支上。 从一个分支单独一个或者两个提交而不是合并整个分支的所有变更是非常有用的。
该命令的基本语法如下:
git cherry-pick
其中,
是要应用的提交的哈希值,其可以有两种取值:
当然,也可以同时应用多个提交,只需要提供多个值:
git cherry-pick ...
这将按照指定的顺序将所有指定的提交应用于当前分支。
cherry-pick
的使用场景cherry-pick
命令常用于以下场景:
cherry-pick
命令,指定bug分支名即可(当然修复需要在一个提交中,因为指定分支名时,仅能将最新提交提取出来)。cherry-pick
的注意事项在使用cherry-pick
命令时,有一些注意事项需要了解:
cherry-pick
会创建一个新的提交,因此可能会引入冲突。如果发生冲突,需要手动解决冲突后再继续应用提交。cherry-pick
不会自动合并提交的作者和提交日期,而是使用当前分支的作者和日期。如果需要保留原有的作者和日期信息,可以使用--no-commit
选项,并手动修改提交信息后再提交。在cherry-pick
提交时,通常会面临冲突,特别是如果cherry-pick
的目标提交修改了与当前分支相同的文件。在这种情况下,需要在成功应用更改之前解决冲突。
当cherry-pick
期间发生冲突时,Git 会暂停进程并提示解决冲突。这时可以使用 git status
命令查看有冲突的文件,并在编辑器中解决冲突。
解决冲突之后,保存更改,并使用git add
命令将文件添加到暂存区。然后,您可以使用以下命令继续 cherry-pick 进程:
$ git cherry-pick --continue
这将应用更改并完成 cherry-pick 进程。
可以使用git cherry-pick --skip
命令跳过 cherry-pick 过程中的一个提交。此命令将跳过当前的提交并继续下一个提交。
cherry-pick
操作在某些情况下,你可能需要撤销 git cherry-pick
操作。这时,你可以使用 git cherry-pick --abort
命令。该命令将中止 cherry-pick 操作并还原过程中所做的任何更改。