• 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进行提交。

  • 相关阅读:
    ViewBinding——Android之视图绑定
    扩散模型:Diffusion models as plug-and-play priors作为即插即用先验的扩散模型
    SoftwareTest6 - 用 Selenium 怎么点点点
    PYTHON-使用正则表达式进行模式匹配
    Deepfake!黑客冒充非洲联盟主席与多位欧洲领导人通话
    汽车油封的重要性
    centos7篇---安装 rabbitmq详细教程
    6.SpringEL与List,Map
    Selenium+Python系列(一) - 开发环境搭建
    使用Go env命令设置Go的环境
  • 原文地址:https://blog.csdn.net/fanyun_01/article/details/126612975