patch

テキスト処理

書き方

patch -p1 < [file.patch]

diff を実際のファイルに当てます。-p はパッチ内の経路を何段落とすかを決め、git のパッチは a/ b/ の接頭辞があるため -p1 が必要です。

よく使うオプション

オプション意味
-pNStrip N leading path components; git diffs need -p1
-RApply the patch backwards to undo it
--dry-runTest whether it applies and change nothing
-iRead the patch from a file instead of standard input
-bKeep a backup of every file it changes

patch -p1 < fix.patch

Applies a git-style patch from the repo root.

patch -p1 -R < fix.patch

Undoes it again.

patch -p1 --dry-run < fix.patch

Checks it applies cleanly first.

パイプでつないで使うのが本来の形です。ひとつで全部やるより、三つつないだ方が短くなります。

読み方

  • 角括弧 [ ] は省いてよい部分です。
  • 三点 … は複数並べられるという意味です。
  • オプションは大文字小文字を区別します — -r と -R が別物のコマンドもあります。

よくある質問

Q. patch は何をしますか。

diff を実際のファイルに当てます。-p はパッチ内の経路を何段落とすかを決め、git のパッチは a/ b/ の接頭辞があるため -p1 が必要です。

Q. どう打ちますか。

patch -p1 < [file.patch] — 角括弧は省いてよい部分です。

Q. よく使うオプションはいくつですか。

ここにまとめたのは5個です。全部は man patch にあります。このコマンドはテキスト処理の仲間です。

関連するコマンド

man ページ: man patch