• git , cherry-pick


    产品开发过程中,可能会在分支merge的情况中发生如下情况:

    假设现在有两个分支 -master 和 -t1

    在t1分支中先创建文件a,并commit

    commit 23b2bce1b3fdfaa7505a7719d326e0160a0c25e4
    Author: ****
    Date:   Wed Feb 24 10:14:47 2016 +0800
    add file a in t1

    然后创建文件b,并commit

    commit 8fd81bcb12927a80de22193545833a062bb8bf32
    Author: *******
    Date:   Wed Feb 24 10:15:31 2016 +0800
    add file b in t1

    但是由于某些原因,在从t1分支merge回master的时候,只想合并文件b,而不想合并文件a。

    这时候可以使用cherry-pick命令来选择合并特定的commit。

    git checkout master
    git cherry-pick 8fd81bcb

    这时候,在master分支下就只有b文件,而没有a文件。

    在随后的开发过程中,修改了数次a文件,这时,如果想通过cherry-pick合并a文件:

    git cherry-pick d7f182226c17c

    这时往往会产生冲突(confliction),原因是,master分支和t1分支内的a文件相差数个commit版本,在合并时,git会认为同时对a文件做了修改。

    使用

    git status

    可以查看冲突信息。

    打开a文件,修改冲突部分,然后执行

    git add .
    git cherry-pick --continue 

    合并成功

  • 相关阅读:
    Spring 整合 Redis
    Spring 整合 Redis
    C#,Java,MD5加密对等实现
    Java调用JavaWebService
    c#,Java aes加密
    Kettle环境变量配置
    Maven环境配置
    Win10,JDK8,tomact7.0.85配置
    ReverseEngineerCodeFirst 自定义模板
    Aspnet_Session
  • 原文地址:https://www.cnblogs.com/starRebel/p/5212428.html
Copyright © 2020-2023  润新知