• Git patch的使用方法和场景


            Git patch在同步不同分支的代码时应用较多,且比较灵活,方便我们对不同发行版本的版本管理和控制。比如修复了基线的一个bug,同步到各个版本的发布分支。本文介绍使用diff/apply生成和应用补丁。

            diff/apply的打patch方案:

            使用diff命令生成patch文件,后使用apply命令应用patch到分支,从而实现修改复刻。其大致流程如下:

    # 生成补丁

    git diff > commit.patch

    # 检查补丁

    git apply --check commit.patch

    # 应用补丁

    git apply commit.patch

    git diff

            没有指定任何版本,那默认就是对lastCommit和working copy之间作比较。

            这里就会出现两种情况:如果当前的working copy已经commit过了,那么lastCommit就是目前working copy自身,所以diff不会输出任何内容;如果当前的working copy未commit,那么diff就会输出本次修改的内容。

    git diff commitId

            指定了一个commitId,那就是对commitId和working copy之间作比较。同样的,如果你的working copy已经commit过了,那么这个命令会等价于git diff commitId lastCommitId。

    git diff commitId1 commitId2

            指定了两个commitId(注意把时间早的commitId放在前面),这种情况就是对commitId1和commitId2之间作比较。

    (1).本地修改未commit

    希望把修改的内容生成patch,可以如下操作:

    git diff > commit.patch

    (2).对于已经add但是未commit的修改:

    git diff --cached > commit.patch

    (3).本地修改已commit

    希望把最近一次的修改生成patch:

    # 注意:commitId为倒数第二个提交ID

    git diff commitId > commit.patch

    apply应用patch

    生成patch文件后,我们切换到希望应用patch的分支,然后按下面的步骤操作:

    # 检查patch是否可以应用

    git apply --check commit .patch

    # 打单个补丁

    git apply commit .patch

    # 打多个补丁

    git apply ../patch/*.patch

            打完补丁后再add/commit进行提交。

  • 相关阅读:
    Centos7部署Python3环境
    主控制文件(项目的开始)食用顺序_3
    2023年全球及中国抗体/蛋白/非核酸疫苗CDMO市场分析:生物药CDMO规模同步增长[图]
    Spring Boot 2.7.0发布,2.5停止维护,节奏太快了吧
    一分钟学会使用js读取上传图片文件
    docker安装最新版lastest
    Ansible数组同步至Shell脚本数组中
    《Oralce系列》Oracle 常用语句汇总
    腾讯 T10级 Jetpack 学习思维导图意外流出,还不赶紧过来围观?
    产品研发流程
  • 原文地址:https://blog.csdn.net/fanyun_01/article/details/126612975