Open Lirx-Xin opened 2 years ago
该命令可以将某分支的一个或多个commit重新提交到当前分支; 例如:
$ git checkout local-branch # 切换到当前分支 $ git cherry-pick 382381a5 # 382381a5是feature-branch的某个提交
上面示例将有新功能的feature-branch分支的382381a5提交作为一个新的提交,提交到local-branch分支;
用户解决代码冲突后,第一步将修改的文件重新加入暂存区(git add .),第二步使用git cherry-pick --continue命令,让Cherry pick过程继续执行。
(git add .)
cherry-pick --continue
Cherry pick
发生代码冲突后,放弃合并,回到操作前的样子。
发生代码冲突后,退出 Cherry pick,但是不回到操作前的样子。
git cherry-pick <HashA> <HashB> // 将HashA和HashB分别提交到当前分支; git cherry-pick A..B // 将(A,B]的所有提交提交到当前分支(不包含A),A必须早于B; git cherry-pick A..B // 将(A,B]的所有提交提交到当前分支(包含A),A必须早于B; // 命令配置 (1)-e,--edit 打开外部编辑器,编辑提交信息。 (2)-n,--no-commit 只更新工作区和暂存区,不产生新的提交。 (3)-x 在提交信息的末尾追加一行(cherry picked from commit ...),方便以后查到这个提交是如何产生的。 (4)-s,--signoff 在提交信息的末尾追加一行操作者的签名,表示是谁进行了这个操作。 (5)-m parent-number,--mainline parent-number 如果原始提交是一个合并节点,来自于两个分支的合并,那么 Cherry pick 默认将失败,因为它不知道应该采用哪个分支的代码变动。
参考自阮一峰-git cherry-pick 教程
git cherry-pick
基本使用
该命令可以将某分支的一个或多个commit重新提交到当前分支; 例如:
上面示例将有新功能的feature-branch分支的382381a5提交作为一个新的提交,提交到local-branch分支;
执行冲突的时候
用户解决代码冲突后,第一步将修改的文件重新加入暂存区
(git add .)
,第二步使用gitcherry-pick --continue
命令,让Cherry pick
过程继续执行。发生代码冲突后,放弃合并,回到操作前的样子。
发生代码冲突后,退出 Cherry pick,但是不回到操作前的样子。
git cherry-pick 命令
参考自阮一峰-git cherry-pick 教程