git常用命令之Cherry-pick

8. Cherry-pick

8.1 基本用法

命令 作用 延展阅读
git cherry-pick 125a1d 将提交125a1d应用于当前分支. 在当前分支产生一个新的提交. 链接
git cherry-pick bugfix 将分支bugfix应用于当前分支. 在当前分支产生一个新的提交.

场景1:提交125a1d应用到master分支

命令 作用 延展阅读
1. git checkout master
2. git cherry-pick 125a1d
链接

8.2 cherry-pick多个提交

命令 作用 延展阅读
git cherry-pick 125a1d 125a2a cherry pick 支持一次转移多个提交
git cherry-pick A..B 转移一系列的连续提交(不包含A),提交 A 必须早于提交 B,否则命令将失败,但不会报错
git cherry-pick A^..B 转移一系列的连续提交(包含A)

8.3 Cherry-pick配置项

命令 作用 延展阅读
git cherry-pick 125a1d -e -e--edit
打开外部编辑器,编辑提交信息
链接
git cherry-pick 125a1d -x 在提交信息的末尾追加一行(cherry picked from commit ...)
方便以后查到这个提交是如何产生的
链接
git cherry-pick 125a1d -s -s--signoff
在提交信息的末尾追加一行操作者的签名,表示是谁进行了这个操作
链接
git cherry-pick 125a1d -n -n--no-commit
只更新工作区和暂存区,不产生新的提交
链接
git cherry-pick -m 1 125a1d -m parent-number--mainline parent-number
如果原始提交是一个合并节点,来自于两个分支的合并,
那么 Cherry pick 默认将失败,因为它不知道应该采用哪个分支的代码变动。

-m配置项告诉 Git,应该采用哪个分支的变动。参数parent-number是一个从1开始的整数
1号父分支是接受变动的分支(the branch being merged into),
2号父分支是作为变动来源的分支(the branch being merged from)
链接

8.4 cherry-pick过程中代码冲突

命令 作用 延展阅读
cherry pick操作过程中发生代码冲突,
Cherry pick 会停下来,让用户决定如何继续操作
1. 用户解决代码冲突;
2. git add .(将修改的文件重新加入暂存区)
3. git cherry-pick --continue (让 cherry pick 过程继续执行)
链接
git cherry-pick --abort 发生代码冲突后,放弃合并,回到操作前的样子
git cherry-pick --quit 发生代码冲突后,退出 Cherry pick,但是不回到操作前的样子

8.5 Cherry-pick到另一个代码库

命令 作用
1. git remote add target [email protected]/testGit.git
2. git fetch target
3. git log target/master
4. git cherry-pick commitHash
1. 添加了一个远程仓库target
2. 远程代码抓取到本地
3. 获取要从远程仓库转移的提交,获取它的哈希值commitHash
4. 使用git cherry-pick命令转移提交

在这里插入图片描述

拓展:Git常用命令汇总

你可能感兴趣的:(GIT,git)