zoukankan      html  css  js  c++  java
  • 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 

    合并成功

  • 相关阅读:
    说到算法怎么可以少了排序呢~
    常用的re正则
    书到用时方恨少-- 正则,待修
    闲逛各个牛人的博客,观后感
    二叉树:B+tree等
    列表,链表,队列
    简述各种锁
    MongoDB
    python爬虫基础应用----爬取无反爬视频网站
    Django缓存管理的6种方法
  • 原文地址:https://www.cnblogs.com/starRebel/p/5212428.html
Copyright © 2011-2022 走看看