コマンドで差分抽出、アーカイブを作成する方法を[Git]差分抽出してzipアーカイブを作成-コマンド編-で紹介しましたが、それをSourcetreeを使用してGUI操作で可能にする方法をご紹介します。
Sourcetreeのカスタムアクションを活用すれば、前回紹介したコマンドをGUIから簡単に操作できるようになります。
バッチファイルの作成
mac
ファイルexport_diff_zip.shを作成します。
#!/bin/sh
if [ "$2" = "" ]; then
git archive --format=zip --prefix=archive/ HEAD `git diff --name-only HEAD $1 --diff-filter=d` -o archive.zip
else
git archive --format=zip --prefix=archive/ $1 `git diff --name-only $2 $1 --diff-filter=d` -o archive.zip
fi
処理の中身はコマンド編で作った最終的なコマンドをはめ込んでます。
作成したファイルに実行権限を追加します。
chmod +x export_diff_zip.sh
カスタムアクションを登録
Sourcetreeにカスタムアクションを登録します。 環境設定を開くと、タブメニューの右のほうにカスタムアクションがあります。
もし押せなくなってる場合Sourcetreeの日本語バグが影響しているようで、言語をEnglishにして再起動すると押せるようになります。 あるいは、Sourcetreeのバージョン起因の場合もあるようなので、ダメそうならバージョンアップを検討してみてください。
addをクリックし、メニュー名を入力、先程作成したファイルexport_diff_zip.shを参照し、パラメータには$SHAを指定します。
これでカスタムアクションが登録されました!
使ってみる
作成したアクションを実際に使ってみます。
コミットを2つ選択します。メッセージ部分には、「識別子と識別子のすべての相違を表示しています」と表示されます。これが差分となります。
右クリック>カスタムアクションをマウスオーバーすると、先程作成したカスタムアクションが表示されます。
クリックして生成!
プロジェクトをファインダーから参照すると、archive.zipデータが作成されているのが確認できました!
中身も抽出したかった内容(差分)で間違いなさそうです。
抽出基準は、バッチファイルに記載した内容となります。もし条件を変更したい場合はこの操作では対応しませんのでご注意ください。
まとめ
Sourcetreeだと視覚的にわかりやすく、シンプルな操作で簡単に差分作成ができました。これで誤操作も防げそうですね!お好きな方法を試してみてください。
▼ コマンド編は以下
参考:
https://ics.media/entry/4475/
※wondowsでの設定はこちらの記事を参考にされるとわかりやすいです。https://qiita.com/naginx/items/03220be59e363971a1b1