自分用のメモ。
Sourcetreeのカスタム操作で指定した差分をzipで抽出する方法。
1. Gitをインストールする
コマンドプロンプトでGitがインストールされているかを確認する。
git --version
インストールされていなければ、Gitをインストールする。
https://git-scm.com/
2. batファイルを作る
テキストエディタで以下のbatファイルを作る。
git_sabun_chushutu.bat
if "%2" equ "" (
set param1=HEAD
set param2=%1
) else (
set param1=%1
set param2=%2
)
setlocal enabledelayedexpansion
set RET_DIR=
for /F "usebackq" %%i in (`git diff --name-only --diff-filter=ACMR %PARAM2% %PARAM1%`) do (
set RET_DIR=!RET_DIR! "%%i"
)
set time=%time: =0%
set TODAY=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
git archive --format=zip --prefix=archive/ %PARAM1% %RET_DIR% -o archive_%TODAY%.zip
3. Sourcetreeのカスタム操作に登録する
- Sourcetreeのメニューバーから「ツール」>「オプション」>「カスタム操作」>「追加」
- カスタム操作を編集ウィンドウで、下記の内容で登録する
【メニュー表示名】好きな名前(「指定の差分をZIPにする」など
【実行するスクリプト】上記で作ったbatファイル
【パラメータ】$SHA
4. カスタム操作で差分抽出する
- Sourcetreeの画面で、差分を取りたい2つのコミットを選択する
(1つ目を左クリックし、Ctrl押しながら2つ目を左クリック) - 右クリックを押して、「カスタム操作」>「指定の差分をZIPにする」(上記で自分がつけた名前)を選ぶ
差分がZIPに書き出される。