[Git] 一時的なコードの変更をパッチファイルに出力してチームメンバーに共有する

本記事では、一時的なコードの変更をパッチファイルに出力してチームメンバーに共有する方法を紹介します。
2021.03.25

はじめに

CX事業本部の平屋です。

本記事では、一時的なコードの変更をパッチファイルに出力してチームメンバーに共有する方法を紹介します。

この方法を使用すれば以下のような一時的な変更をパッチファイルに出力でき、そのファイルをチームメンバーに共有できます。チームメンバーは受け取ったファイルをローカルのプロジェクトに適用し、変更されたコードを使用して動作検証などを実施できます。

  • 実装途中の変更
  • 調査に使用した一時的な変更

検証環境

  • macOS Catalina 10.15.7

パッチファイルを作成する

例として、以下のiOSアプリのコードを変更してみます。9行目で背景色を.redに指定している箇所を.blueに変えます。

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.

        view.backgroundColor = .red // <- ここ
    }
}

パッチを作成するには以下のコマンドを実行します。diff.patchは出力先のパッチファイルの名前です。

git diff > diff.patch

すると、Git管理下のルートディレクトリに以下の内容のパッチファイルdiff.patchが出力されます。このファイルをチームメンバーに共有します。

diff --git a/GitPatchSample/ViewController.swift b/GitPatchSample/ViewController.swift
index 6630686..bb3735c 100644
--- a/GitPatchSample/ViewController.swift
+++ b/GitPatchSample/ViewController.swift
@@ -13,7 +13,7 @@ class ViewController: UIViewController {
         super.viewDidLoad()
         // Do any additional setup after loading the view.
 
-        view.backgroundColor = .red
+        view.backgroundColor = .blue
     }
 }

パッチファイルを適用する

続いて、パッチファイルを受け取った側の作業を説明していきます。

(今回はパッチファイルを作成すると同じファイルに変更を適用するので、一旦変更をもとに戻してから作業しました。)

そして、Git管理下のルートディレクトリにパッチファイルをコピーし、以下のコマンドを実行します。

patch -p1 < diff.patch

パッチファイルに出力した変更が対象ファイルに適用されたことを確認できるかと思います。

さいごに

本記事では、一時的なコードの変更をパッチファイルに出力してチームメンバーに共有する方法を紹介しました。同じようなことをしようとしている方の参考になれば幸いです。

参考資料