gitの差分だけzipとかで固める

Git

お仕事してるとたまーに差分だけ出してーって言われることがあります。

特定のコミットと特定のコミット間の差分だけをコマンドで固められると便利だなーということでコマンドメモしておきます。

Zipで圧縮

$ git diff [コミットID1] [コミットID2]  --name-only | xargs zip -r archive.zip

これはzip圧縮するコマンドで、zipコマンドがないと動きません。実行するときは予めインストールしておいてください。

tar.gzで圧縮

$ git diff [コミットID1] [コミットID2]  --name-only | xargs tar zcvf archive.tar.gz

tar.gzするならこちらのコマンドで出来ると思います。

まとめ

指定したコミットID間の差分を固める処理なのでコミット間に複数のコミットがあっても動くはず…

やってることは$ git diff [コミットID1] [コミットID2] --name-onlyで変更のあったファイルのディレクトリパス一覧を取得、それをxargsに渡して固めてます。

あまり使う機会はないかもですが、あると便利な時もあると信じてメモっておきますね。