web-dev-qa-db-ja.com

gerritからダウンロードしたパッチファイルをどのように適用しますか?

Gerritの変更のダウンロードセクションの下に、パッチファイルをダウンロードできるセクションがあります。

enter image description here

git applyを使用すると、次のようになります。

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

このパッチを適用するには、どのコマンドを使用しますか?

12
base64 --decode c6a9dcdb.diff.base64 > c6a9dcdb.diff
git apply c6a9dcdb.diff

(c6a9dcdbを、Gerritから提供された省略形のコミットハッシュに置き換えます。)

12
pestophagous

これはbase64エンコードファイルです( ここ を参照)。最初にファイルをデコードする必要があります( ここ を参照)。代わりにチェリーピック方式を使用する方が簡単だと思います。

考えられる解決策は次のとおりです。

  1. Cherry Pickのコマンドをコピーして貼り付けるだけです。

  2. Checkoutのコマンドをコピーして貼り付け、git format-patch -1を実行して、git amまたはgit applyで使用できるパッチを作成します。 git diff HEAD^..HEAD > xxx.patchを実行してパッチを生成することもできます。wchichはgit applyで使用できます。

  3. Diff.Zipをダウンロードし、解凍して、git applyします。

  4. Diff.base64をダウンロードし、デコードして、git applyします。

  5. Checkoutまたはgit fetchコマンドのCherry Pick部分を実行し、git mergegit rebasegit cherry-pick、またはコミットを操作して適用できる任意のコマンドを使用します必要なパッチ。

  6. Gerritにある別のブランチにパッチを適用する場合は、cherry-pickボタンを使用して適用します。

3
ElpieKay