HAM MEDIA MEMO

gitで差分ファイルを抽出してzipにまとめる方法

1個前のコミットから現在のコミットまでの差分を抽出してzip

参考にしたのは下記。

gitで差分ファイルを抽出する - Qiita

1個前のコミットから現在のコミットまでの差分を抽出してzipする場合は下記のコマンドになるようです。

git archive --format=zip --prefix=archive/ HEAD `git diff --name-only HEAD HEAD~1` -o archive.zip

参考先のではdiffの最後が HEAD^ になっていたのですが、それではうまく動作せずにエラーになったので、 HEAD~1としています。この数値を変更すれば○回前のログの内容との差分として出力がかわるようになります。

HEADからの回数でたどるのではなく、ハッシュ値でもたどることができます。

--prefix=archive/ のオプションはなくてもいいのですが、あると指定したディレクトリ名の中にファイルをいれてまとめてくれます。

最後の -o archive.zip は出力先のファイル名を指定可能です。

これで差分だけほしいと言われても、時間かけずに抽出してまとめることができます。