• 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 

    合并成功

  • 相关阅读:
    [NOIP2015] 子串 题解
    [NOIP2011] 聪明的质检员 题解
    二进制的一些概念
    [NOIP2012] 借教室 题解
    [POJ3764] The XOR Longest Path 题解
    关于本博客
    【SC-MY限定】让填写问卷星成为自动化!
    JZOJ5833 永恒
    九校联考-DL24凉心模拟Day2总结
    【简解】SP7556 Stock Charts
  • 原文地址:https://www.cnblogs.com/starRebel/p/5212428.html
Copyright © 2020-2023  润新知