コマンドでパッチ作成&適用
プロジェクト間の差分パッチファイルをコマンドラインで作成&適用する方法のメモです。なお、今回はコンフリクトのマージは想定していません。
目次
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管理されており、masterとdevelopブランチが存在
- developの方を変更後、masterに差分を適用
## パッチ作成: (developブランチで)
$ git diff master > /tmp/test.patch
## パッチ適用: (masterブランチで)
$ patch -p1 < /tmp/test.patch
NOTE: プロジェクトをgit管理していれば通常はmasterで $ git merge develop
とやれば良いだけですが、今回はあえてパッチファイルを使って差分を適用しています。
注意: こちらもコンフリクトしていても上書きされますのでご注意ください。 マージを行いたい時は $ git merge <branch>
を使いましょう。
以上です。