株式会社プロネット

 

WEBシステム開発、ITコンサルティング、自社サービス、教育事業 - これからのビジネスへのIT活用ソリューションをご提案致します。

Gitで差分zipを作成

2016.12.19(Mon) 19:33 | 未分類 | yamamoto


Gitで変更したファイルのみを抽出したい事が多々あると思いますので今回は差分zipの作成を紹介したいと思います。

以下のコマンドで1つ前のコミットから現在のコミットまでの差分ファイルを抽出できます。

git archive --format=zip --prefix=root/ HEAD `git diff --diff-filter=d --name-only HEAD^ HEAD` -o archive.zip


HEADは現在使用しているブランチの先頭を表す名前です。

HEAD^ は1つ前のコミットを表します。

HEAD^ を HEAD~5 とすると5つ前のコミットになります。

HEAD^ をSHAの文字列にするとそのコミット後からになります。
GitHubだとコミット一覧で、[copy the full SHA]と出るボタンをクリックでコピーすることができます。

コマンドの説明

上記のコマンドは「git archive」と「git diff」 を使用します。

[git diff」] 差分を抽出

[--diff-filter=d] 削除ファイルは含まないようにする

[--name-only] 変更があったファイル名を抽出

[git archive] アーカイブファイルを生成

[--format=zip] ファイルはzipを指定

[--prefix=root/] rootフォルダの中に入れる

[-o] アーカイブファイル名


この長いコマンドを覚えられないと思うので、スクリプトを作成しておいた方が良いかと思います。


参考URL: http://qiita.com/kaminaly/items/28f9cb4e680deb700833