コマンドでパッチ作成&適用の画像
芽萌丸プログラミング部 @programming
投稿日 2020/04/03

開発

コマンドでパッチ作成&適用

プロジェクト間の差分パッチファイルをコマンドラインで作成&適用する方法のメモです。なお、今回はコンフリクトのマージは想定していません。

目次

diff & patch コマンド版

前提:

  • プロジェクト prj/ とそのバックアップ prj_bk/ が存在
  • *prj/の方を変更後、prj_bk/*に変更部分を適用
## パッチ作成:
$ diff -uprN prj_bk prj > /tmp/test.patch

## パッチ適用:
$ cd prj_bk/
$ patch -p1 < /tmp/test.patch
## (おまけ) パッチ適用を戻す:
$ patch -p1 -R < /tmp/test.patch

注意: もしコンフリクトしていても上書きされますのでご注意ください。(マージは行いません) マージを行いたい時は $ meld prj/ prj_bk/ (GUIでマージを行えます。Linux限定。) などを使って手動でマージを行ないましょう。

git diff & patch コマンド版

前提:

  • プロジェクトがgit管理されており、masterdevelopブランチが存在
  • developの方を変更後、masterに差分を適用
## パッチ作成: (developブランチで)
$ git diff master > /tmp/test.patch

## パッチ適用: (masterブランチで)
$ patch -p1 < /tmp/test.patch

NOTE: プロジェクトをgit管理していれば通常はmaster$ git merge develop とやれば良いだけですが、今回はあえてパッチファイルを使って差分を適用しています。

注意: こちらもコンフリクトしていても上書きされますのでご注意ください。 マージを行いたい時は $ git merge <branch> を使いましょう。

以上です。


芽萌丸プログラミング部
芽萌丸プログラミング部 @programming
プログラミング関連アカウント。Web標準技術を中心に書いていきます。フロントエンドからサーバサイドまで JavaScript だけで済ませたい人たちの集いです。記事は主に @TanakaSoftwareLab が担当。