gdoudeng 发表于 2022-3-19 22:02

git合并特定commits到另一个分支

## 引入

正常开发流程都是在`master`分支上新建`dev`分支,然后在`dev`分支上添加功能,修复`bug`等操作,然后测试完毕没问题再合并到`master`分支的。

然后有一天你在`dev`分支上开发着的时候,产品说要急着增加某个功能,此时你dev分支上已经改了很多东西,你只需要`dev`分支上的某一个`commit`,你就需要`git cherry-pick`。

## 正确姿势

1. 我们是把`dev`分支上的某一个`commit`合并到`master`分支上,所以我们要先切回到`master`分支上。

!(https://picture-transmission.iplus-studio.top/uPic/d1xAy8.png)

选中`master`分支,右键签出。

2. 直接把你要合并的commit选中,然后点击一下樱桃按钮,即可把这个commit合并到当前分支上。

!(https://picture-transmission.iplus-studio.top/uPic/z6OxV2.png)

同样如果有合并冲突,也可以解决冲突。

!(https://picture-transmission.iplus-studio.top/uPic/gNMV4P.png)

## 总结

这个功能很简单,但很实用,也可以通过`git`命名来实现,只是笔者觉得`idea`的效率确实很高。
`cherry-pick`适合部分提交在不同分支之间的`merge`,如果全量`merge`,直接分支`merge`即可。

CharlesW 发表于 2022-3-19 23:09

可以,这操作很骚

fnckyon2014 发表于 2022-3-20 01:28

建议这种情况下,先从 master 拉出一个新的分支 release,然后 cherry-pick 到 release,测试没问题再合并回去噢

gdoudeng 发表于 2022-3-20 15:12

fnckyon2014 发表于 2022-3-20 01:28
建议这种情况下,先从 master 拉出一个新的分支 release,然后 cherry-pick 到 release,测试没问题再合并 ...

可以哈,更加严谨。

fnckyon2014 发表于 2022-3-27 01:00

gdoudeng 发表于 2022-3-20 15:12
可以哈,更加严谨。

:Dweeqw如果是公司里的,建议还是尽量能够遵循某种 git flow 规则,相对于 cherry-pick 更容易把控。
因为 cherry-pick 对 commit 也有要求,比如 commit 应该不混合多个功能的内容,不然可能就乱了。(实际大部分都做不到这点)

当然,cherry-pick 还是有用的
页: [1]
查看完整版本: git合并特定commits到另一个分支