cherry-pick 可以局部代码合并。

cherry-pick不仅可以用在不同分支之间,还可以用在同一个分支上。

比如说你在某一个向某个分支中添加了一个功能,后来处于某种原因把它给删除了,然而后来某一天你又要添加上这个功能了, 这时候就可以使用cherry-pick把添加那个功能的commit, 再重演一遍。

不同分支之前,传递代码,有点意思。

commit dbb9d196fb38fe676fdfea9aeee6b0bc4512209a
Author: jiqing <jiqing@caomall.net>
Date: Wed May 16 10:37:49 2018 +0800 规格处理 Admin/Lib/Action/ProductAction.class.php | 9 +++++++--
Admin/Tpl/Product/add.html | 12 ++++++------
2 files changed, 13 insertions(+), 8 deletions(-)

这个是分支A中的功能调整,分支B中也需要这样的功能,怎么办呢?

难不成,再写一遍?又或者再复制一遍?

不需要的,使用cherry-pick就可以了。

git cherry-pick dbb9d196fb38fe676fdfea9aeee6b0bc4512209a
[laobandianqi 3eb652d] 规格处理
Date: Wed May 16 10:37:49 2018 +0800
2 files changed, 13 insertions(+), 8 deletions(-)

我们发现,分支B中会进行一模一样的操作。

git log
commit 3eb652de360e67dae1dfb2f7692396adad26ec65
Author: jiqing <jiqing@caomall.net>
Date: Wed May 16 10:37:49 2018 +0800 规格处理

就连生成的commit日志都是一样的,说明,它将commit重新在分支B上执行了一遍。

很好很强大,很喜欢。

使用之前,记得git fetch

jiqing@Ubuntu:/home/wwwroot/default/laobandianqi/store$ git fetch
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
展开对象中: 100% (6/6), 完成.
来自 http://106.14.59.204/zhubin/store
dbb9d19..c126d03 yanglu -> origin/yanglu
jiqing@Ubuntu:/home/wwwroot/default/laobandianqi/store$ git cherry-pick c126d03041af4ab49a4104168e158ba869f6c9d5
[laobandianqi 5b3cd36] 购物车添加移除,增加规格
Date: Wed May 16 11:28:45 2018 +0800
1 file changed, 1 insertion(+)

git不同分支局部代码合并 git cherry-pick的更多相关文章

  1. git学习心得之git跨分支提交代码

    最近在工作中遇到了git跨分支提交代码的问题,本地拉的是远程master分支的代码,需要将本地修改代码提交到远程temp分支. 1.在gitlab上对相应项目fork本地分支 2.更新本地代码,将远程 ...

  2. SVN建立分支、代码合并以及常用操作

    在项目开发的过程中,现在遇到这样一个问题: 现在是9月份,在同一个项目中我要开发A.B两个模块,A模块是11月份上线,B模块是12月份上线,但是SVN上的trunk(主干)上的代码必须是上线的. 假设 ...

  3. 在Ubuntu 16.10 安装 git 并上传代码至 git.oschina.net

    1. 注册一个账号和创建项目 先在git.oschina.net上注册一个账号和新建一个project ,如project name 是"myTest". 2.安装git sudo ...

  4. git切换分支导致代码丢失找回(git reflog找回错误的重置)

    1.使用git reflog查看日志 2.切换到丢失的分支 3. 创建一个临时分支  如(diff),并切换到dev(原分支),然后合并diff到dev分支 4.查看状态 5.强制合并,然后提交到de ...

  5. git 切换分支开发并合并提交到远程仓库

  6. [转]实际项目中如何使用Git做分支管理 (A successful Git branching model)

    来自 https://nvie.com/posts/a-successful-git-branching-model/ In this post I present the development m ...

  7. git 从远程克隆代码并实现分支开发,合并分支,上传本地代码到远程

    首先确认你已经安装了git 1.克隆远程代码到本地的操作 git clone 地址   打开git操作命令行 鼠标右键点击        复制需要克隆的项目的地址类似下面的ssh     输入命令进行 ...

  8. git代码合并:Merge、Rebase的选择

    代码合并:Merge.Rebase的选择 Zhongyi Tong edited this page on Dec 7, 2015 · 3 revisions Pages 19 Home 2.1 快速 ...

  9. Git新建分支,分支合并,版本回退详解

    一.git基本命令 git拉取仓库代码 #拉取master代码 git clone git仓库地址 #拉取分支代码 git clone -b 分支名称 git仓库地址 2.git添加代码到本地仓库 g ...

随机推荐

  1. struts2访问或添加几个属性(request/session/application属性)

    https://blog.csdn.net/hebiao100/article/details/7385055 struts2添加request.session.application属性 第一种方法 ...

  2. HDU 5421 Victor and String

    Victor and String Time Limit: 1000ms Memory Limit: 262144KB This problem will be judged on HDU. Orig ...

  3. HDU4135容斥原理

    #include <cstdio> #include <string.h> #include <cmath> using namespace std; #defin ...

  4. RQNOJ273 马棚问题

    题目描述 每天,小明和他的马外出,然后他们一边跑一边玩耍.当他们结束的时候,必须带所有的马返回马棚,小明有K个马棚.他把他的马排成一排然后跟随它走向马棚,因为他们非常疲劳,小明不想让他的马做过多的移动 ...

  5. isNaN+parseFloat进行统计以及对NaN的处理【JS验证数字】

    今天遇到这么一个需求: 对数据进行统计,可是在统计的时候parseFloat的时候出来一个NaN.后来用isNaN判断,如果是NaN,就给其设置一个初值. 先看对两个方法的解释 parseFloat: ...

  6. BZOJ3926 (后缀自动机)

    BZOJ3926 诸神眷顾的幻想乡 Problem : 给一个n个节点的树(n<=10^5), 每个点有一种颜色(c<=10), 询问所有点对之间路径组成字符串的种类.保证叶子节点小于等于 ...

  7. vagrant的学习 之 ThinkPHP3.2

    vagrant的学习 之 ThinkPHP3.2 (1)在web目录下新建tp32目录: cd /home/www/ mkdir tp32 (2)下载框架 我从ThinkPHP官网下载了ThinkPH ...

  8. OC-category 为什么不能添加成员变量

    以下的答案是百度的,仅做记录而已: 1. 利用运行时实际上也不是添加成员变量.已编译的类的内存布局是不变的,Class就是一个结构体,里面的成员不能改变.但是通过运行时可以将一个对象或基础类型变成指定 ...

  9. OC-Xcode中导入runtime框架,函数参数没有提示的处理方法

    在了解runtime时,如果自己编写runtime代码,需要先导入头文件: #import <objc/message.h> 之后,例如了解runtime的消息机制时,调用objc_msg ...

  10. DELL IDRAC API接口开发文档翻译及client模块

    今天和DELL官网要了一份关于服务器IDRAC 版本7/8 的API开发文档,花了一天的时间,进行了翻译,不一定全部准确,但对于英语不好的人会有所帮助.也不用重复造轮子了.下载链接: IDRAC AP ...