Git 如何应用从gerrit下载的修补程序文件?

Git 如何应用从gerrit下载的修补程序文件?,git,gerrit,Git,Gerrit,在Gerrit中的“下载”部分下,有一个部分允许您下载修补程序文件: 使用git apply会导致: $ git apply 441eb56b.diff.base64 fatal: unrecognized input 我使用什么命令应用此修补程序?这是一个base64编码文件(请参阅)。您需要先对文件进行解码(请参阅)。我认为使用樱桃选择法更容易。以下是可能的解决方案 只需复制并粘贴Cherry Pick的命令即可 只需复制并粘贴Checkout的命令,然后运行git format pat

在Gerrit中的“下载”部分下,有一个部分允许您下载修补程序文件:

使用
git apply
会导致:

$ git apply 441eb56b.diff.base64
fatal: unrecognized input

我使用什么命令应用此修补程序?

这是一个base64编码文件(请参阅)。您需要先对文件进行解码(请参阅)。我认为使用樱桃选择法更容易。

以下是可能的解决方案

  • 只需复制并粘贴
    Cherry Pick
    的命令即可

  • 只需复制并粘贴
    Checkout
    的命令,然后运行
    git format patch-1
    即可创建可在
    git am
    git apply
    中使用的补丁。您还可以运行
    git diff HEAD^..HEAD>xxx.patch
    生成补丁,该补丁可在
    git apply
    中使用

  • 下载diff.zip,解压缩,
    git-apply
    it

  • 下载diff.base64,对其进行解码,
    git apply

  • 运行
    Checkout
    Cherry-Pick
    命令中的
    git-fetch
    部分,使用
    git-merge
    git-rebase
    git-Cherry-Pick
    或任何可以操纵提交以应用所需修补程序的命令

  • 如果要将修补程序应用于Gerrit中的另一个分支,请使用
    cherry pick
    按钮执行此操作


  • (用Gerrit给你的任何缩写commit hash替换c6a9dcdb。)

    是的,我最终选择了cherry。但是补丁数据非常有趣。当然,您可以将base64解码结果通过管道传输到
    git apply
    。但无论如何,下载补丁的功能似乎主要是为那些没有签出git repo可用性的人提供的,在这种情况下,选择cherry pick当然更容易。看见我错过的是一个补丁下载,它实际上只下载了补丁集之间的差异,这样一个樱桃选择就不会干扰我对同一补丁集的更改。
    base64 --decode c6a9dcdb.diff.base64 > c6a9dcdb.diff
    git apply c6a9dcdb.diff