• LIGの広告成功事例
WEB

Git管理ツール「SourceTree」で差分ファイルを抜き出す方法

Git管理ツール「SourceTree」で差分ファイルを抜き出す方法

どうもです、お久しぶりです、はやちです✌(´ʘ‿ʘ`)✌

ここ最近DMMのブラウザゲーム「刀剣乱舞」にハマってしまいましてひたすら刀狩りをしております( ˇωˇ )<おじいちゃんこない
そんなことはどうでもいいですね。

今回は、Git管理ツール「SourceTree」を使用して昔のファイルと作業したファイルの差分を抜き出す方法をご紹介いたします( ˘ω˘)☝

バッチファイルを用意する

まずはバッチファイルを用意しましょう( ˇωˇ)☝
適当なディレクトリにファイルを保存します。

Windows用

Windows用がこちらです。

export_diff_zip.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 %PARAM1% %PARAM2%`) do (
  set RET_DIR=!RET_DIR! "%%i"
)

git archive --format=zip --prefix=archive/ %PARAM1% %RET_DIR% -o archive.zip

Mac用

Mac用はこちらです。

export_diff_zip.sh

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 %PARAM1% %PARAM2%`) do (
  set RET_DIR=!RET_DIR! "%%i"
)

git archive --format=zip --prefix=archive/ %PARAM1% %RET_DIR% -o archive.zip

ターミナルでの操作

Macの場合、ファイル制作しただけだとファイルが適応されないので、ターミナルを開いて制作したディレクトリーを指定し、下記のコマンドを叩いて適応させます。
お忘れのないようお気をつけくださいまし( ˇωˇ)☝

chmod +x export_diff_zip.sh

黒い画面こわい(`⊙ω⊙´)カッ!!ってひとは、こちらのサイトからDLすればすぐできるので下記のものをおすすめします( ˇωˇ)☝

参考:Git初心者でも差分ファイルを一瞬で取り出すMac用SourceTreeスクリプト
https://www.eyemovic.com/blog_it/4747.php

バッチファイルを登録する

用意したファイルをSourceTreeに登録しましょう( ˇωˇ)☝

test

Macの方

メニューから「SourceTree」→「環境設定」→「カスタムアクション」→「追加」を押します( ˇωˇ)☝

Windowsの方

メニューから「ツール」→「オプション」→「カスタム操作」→「追加」を押します( ˇωˇ)☝

test2
ここで先ほどのファイルを読み込みカスタムアクションとして登録をします( ˇωˇ)☝

  1. 任意のアクション名を入れます、今回「差分ダウンロード」で登録します。
  2. 先ほど作ったファイルを読み込みます。
  3. ファイルに実行する引数を入力します。

test3
このように出ましたら準備は完了になります( ˇωˇ)☝

差分ファイルを作ってみよう

準備が整ったので差分ファイルを作ってみましょう( ˇωˇ)☝

test4

作業して、差分を取りたいコミットを選択します( ˇωˇ)☝

 
test5

右クリックから「カスタムオプション」→「差分ダウンロード」で先ほど登録したカスタムオプションを起動します( ˇωˇ)☝

 
test6

archive.zipというファイルが生成されましたら成功です。
しゅごい(`⊙ω⊙´)カッ!!

まとめ

いかがでしたでしょうか、何度か先方にファイル納品する際でも、Gitなら間違いないので安心ですね( ˇωˇ)☝
Windowsの方もばっちりです、今回以下の記事を参考にさせていただきました。

参考にした記事

この記事を書いた人

はやち
はやち フロントエンドエンジニア 2010年入社
フロントエンドエンジニアのはやちです( ˘ω˘)☝
以前までは顔隠しておりましたが思い切ることにしました…。
相変わらず顔文字乱舞ですがブログもコーディングも楽しくやっていこうと思います✌(´ʘ‿ʘ`)✌
今までに作ったDemoたちはGithubにて公開しております!よろしければ是非( ˘ω˘)☞三☞シュッシュッ