0


Git---分支合并之合并分支commit提交数据cherry-pick

平时咱们合并分支,一般都是全量拉取另一个分支的代码提交记录。

现在突然出现一个需求,此时本地分支需要拉取另一个分支test上的某部分代码修改(简单说就是需要合并指定commit记录的文件修改记录到当前分支)

直接开始重点讲解:

在不同分支之间进行代码合并时,通常会有两种情况:一种情况是需要另一个分支的所有代码变动,那么就可以直接合并(git merge),另一种情况是只需要部分代码的变动(某几次提交),这时就可以使用以下命令来合并指定的提交:

  1. 在被合并的分支上进行查询commit操作
git log --oneline   // 赋值需要合并的commit hash值
  1. 回到主分支后进行操作
// 合并一个commit_hash执行
git cherry-pick <commit hash>

// 合并多个commit_hash执行
git cherry-pick commit_hashA commit_hashB

// 合并多个连续的commit_hash执行(..)
git cherry-pick commit_hashA..commit_hashB

最后连续的写法,要注意一点:
需要注意的是,commit_hashA必须比commit_hashB提前提交,也就是说在被挑选的分支上,
先有的commit_hashA,然后才有的commit_hashB

此处的commit_hash指的是被合并分支上的commit_hash,要提前记住再切回来执行相关代码!
  1. 建议添加
    ```

-x

 标志,因为它会生成标准化的提交消息,通知用户它是从哪里pick出来的

git cherry-pick -x <commit hash>


---

####   git cherry-pick高级用法

比如合并时出现冲突了如何处理???

1. 合并冲突

首先在使用cherry-pick时,如果遇到了代码冲突,其实合并过程会停止,需要使用其他的方式来继续对应的操作。这里的其他方式就是,正常的处理方式手动处理,之后进行下面的操作以继续命令

2. 采用--continue继续合并

1.第一步:需要合并人解决对应的冲突文件,然后提交到暂存区
git add .
2.第二步:使用下面的命令继续执行
git cherry-pick --continue


 ![](https://img-blog.csdnimg.cn/a097f56ed3b345249f4199cde1aa5202.png)

3.  放弃合并:有几种情况(回归原始状态,保留状态,)

 回归原始状态​​​​​​​:

// 使用当前的指令,合并的动作暂停,并且回归到操作前的样子
git cherry-pick --abort


 ![](https://img-blog.csdnimg.cn/d10db4b5833a4e5eade21442e40c323a.png)

 保留状态:

//使用当前的指令,会保留车祸现场,退出cherry-pick
git cherry-pick --quit


 ![](https://img-blog.csdnimg.cn/1c87c1dea9db4b0083268a1e509bc9e3.png)​​​​​​​

---

####  联合使用的命令:

-e,--edit
使用当前指令,会打开编辑器,让用户编写信息

-n,--no-commit
只更新工作区和暂存区,不产生新的提交

-x
在提交信息的末尾追加一行(cherry picked from commit ...),说明这个提交是如何来的

```

这个常用在自己清楚每个分支的对应提交文件,否则可能合并部分代码导致后期项目合并问题!!!

标签: git github cherry-pick

本文转载自: https://blog.csdn.net/COCOLI_BK/article/details/128134070
版权归原作者 绝世唐门三哥 所有, 如有侵权,请联系我们删除。

“Git---分支合并之合并分支commit提交数据cherry-pick”的评论:

还没有评论