简介
在 git 治理的工程中,不可避免的存在多个分支,比方风行的 gitflow 就划分为很多的分支,那么就会有代码的合并。个别代码的合并分为两种:一种是整个分支的合并,一个是筛选局部的 commit 来合并。本文介绍的就是筛选局部的 commit 来提交的指令 git cherry-pick。
git cherry-pick 根底用法
筛选一个 commit-id 合并
git cherry-pick commit-id
- 留神:合并过去的 commit-id 将会变掉,产生一个新的 commit-id,跟原来的不在雷同
筛选多个 commit-id 合并
git cherry-pick commit-idA commit-idB
筛选间断的多个 commit-id 合并
git cherry-pick commit-idA..commit-idB
- 该指令是将从 commit-idA 开始到 commit-idB 之间的所有 commit-id 提交记录都合并过去,须要留神的是,commit-idA 必须比 commit-idB 提前提交,也就是说在被筛选的分支上,先有的 commit-idA,而后才有的 commit-idB
git cherry-pick 高级用法
- 应用下面的指令基本上能够玩转很大部分的场景,然而总有一些咱们料想不到或者绝对不是很丝滑的场景
合并抵触
- 在理论合并的过程中,总有一些抵触的状况,遇到这些状况下,该如何应用 cherry-pick 的组合命令来解决问题?
- 首先在应用 cherry-pick 时,如果遇到了代码抵触,其实合并过程会进行,须要应用其余的形式来持续对应的操作
持续合并 –continue
- 第一步:须要合并人解决对应的抵触文件,而后提交到暂存区
git add .
- 第二步:应用上面的命令继续执行
git cherry-pick --continue
放弃合并,回归原始状态 –abort
- 应用以后的指令,合并的动作暂停,并且回归到操作前的样子
git cherry-pick --abort
放弃合并,保留状态 –quit
- 应用以后的指令,会保留车祸现场,退出 cherry-pick
git cherry-pick --quit
联结应用的命令
-e,–edit
- 应用以后指令,会关上编辑器,让用户编写信息
-n,–no-commit
- 只更新工作区和暂存区,不产生新的提交
-x
- 在提交信息的开端追加一行 (cherry picked from commit …),阐明这个提交是如何来的