合并单个commit到指定分支上——tortoisegit ch
2019-01-01 本文已影响99人
拉普拉斯妖kk
- 当我们使用git管理一个程序的源码时,总是会新建很多分支。不同的分支可以直接使用merge来合并代码。但我们有时候会有这种需求,比如说我们有n个分支分别开发不同版本的程序,其基础功能是一样的,但是不同分支上有不同的需求开发,这时我们的基础功能上有一个bug的修复想同步到其他分支上就不能使用merge了,因为merge会合并所有改动代码。这种情况下,我们需要使用的是git的cherry pick功能。在命令行中使用这个功能比较简单,网上有很多,但是我们使用tortoisegit工具使用这个功能没看到介绍这种操作的,这里我分享出来也做个记录。
- 比如,我们现在在dev上修复了一个基础功能的bug,并且已经push到远程了。这时,我们想把这次commit合并到hummer_lite_dev这个分支上。
![](https://img.haomeiwen.com/i2199186/23b3dbe1a23490cb.png)
- 首先,我们需要切换到想要合并的分支上去,然后执行git fetch同步一下远程的提交记录。
![](https://img.haomeiwen.com/i2199186/a611891fdd37c622.png)
- 然后,选择右键菜单中的show log,查看提交日志,点击这里切换到我们要合并的commit的那个分支的日志。
![](https://img.haomeiwen.com/i2199186/b9c9cfd1fe447bd7.png)
![](https://img.haomeiwen.com/i2199186/73d5db112412c299.png)
- 这时,可以在远程dev分支的提交记录上看到需要合并的那次commit。
![](https://img.haomeiwen.com/i2199186/0bb65eab82a7f8e3.png)
- 在这次commit上右键弹出菜单,选择Cherry Pick this commit...
![](https://img.haomeiwen.com/i2199186/b68361d47c09dfea.png)
- 这时就会弹出cherry pick的界面,选中需要pick的那次commit,点击contimue,就会把这次commit合并并且提交到到本地的hummer_lite_dev分支上了。这里也可以查看commit的文件和msg,如果有冲突也要解决冲突。
![](https://img.haomeiwen.com/i2199186/2c72a2b9965728dd.png)
- 这里我们可以看到本地的分支已经指向了合并进来的最新一次的commit。
![](https://img.haomeiwen.com/i2199186/e5b6d1668b1727bb.png)
- 最后,我们执行一下git pull、git push,将其同步到远程分支上就ok啦。
![](https://img.haomeiwen.com/i2199186/fbfbabb40c30aec5.png)