zoukankan      html  css  js  c++  java
  • git 教程 --git cherry-pick 命令

    简介

    在git管理的工程中,不可避免的存在多个分支,比如流行的gitflow就划分为很多的分支,那么就会有代码的合并。一般代码的合并分为两种:一种是整个分支的合并,一个是挑选部分的commit来合并。本文介绍的就是挑选部分的commit来提交的指令git cherry-pick。

    git cherry-pick基础用法

    挑选一个commit-id合并

    git cherry-pick commit-id
    • 注意:合并过来的commit-id将会变掉,产生一个新的commit-id,跟原来的不在相同

    挑选多个commit-id合并

    git cherry-pick commit-idA commit-idB

    挑选连续的多个commit-id合并

    git cherry-pick commit-idA..commit-idB
    • 该指令是将从commit-idA开始到commit-idB之间的所有commit-id提交记录都合并过来,需要注意的是,commit-idA必须比commit-idB提前提交,也就是说在被挑选的分支上,先有的commit-idA,然后才有的commit-idB

    git cherry-pick高级用法

    • 使用上面的指令基本上可以玩转很大部分的场景,但是总有一些我们预想不到或者相对不是很丝滑的场景

    合并冲突

    • 在实际合并的过程中,总有一些冲突的情况,遇到这些情况下,该如何使用cherry-pick的组合命令来解决问题?

    • 首先在使用cherry-pick时,如果遇到了代码冲突,其实合并过程会停止,需要使用其他的方式来继续对应的操作

    继续合并--continue

    • 第一步:需要合并人解决对应的冲突文件,然后提交到暂存区

    git add . 
    • 第二步:使用下面的命令继续执行

    git cherry-pick --continue

    放弃合并,回归原始状态--abort

    • 使用当前的指令,合并的动作暂停,并且回归到操作前的样子

    git cherry-pick --abort

    放弃合并,保留状态 --quit

    • 使用当前的指令,会保留车祸现场,退出cherry-pick

    git cherry-pick --quit

    联合使用的命令

    -e,--edit

    • 使用当前指令,会打开编辑器,让用户编写信息

    -n,--no-commit

    • 只更新工作区和暂存区,不产生新的提交

    -x

    • 在提交信息的末尾追加一行(cherry picked from commit ...),说明这个提交是如何来的

  • 相关阅读:
    【C++】类的特殊成员变量+初始化列表
    SM Java实现
    Android使用OKHttp3实现下载(断点续传、显示运行进度)
    codeforces 486C Palindrome Transformation 贪心求构造回文
    手把手教你画AndroidK线分时图及指标
    怎样使用 iOS 7 的 AVSpeechSynthesizer 制作有声书(3)
    C# 读取Excel中的数据
    Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Query was empty
    java debug
    8种移动APP导航设计模式对照
  • 原文地址:https://www.cnblogs.com/ahzxy2018/p/14482626.html
Copyright © 2011-2022 走看看