納品用に更新したファイルを送らなければならない時があります。
その時に活躍するのが git diff
です。
まず更新したファイル見たい場合は次のようにします。
git diff --name-only --diff-filter=ACMR 2>/dev/null
これでwork treeと最終コミットの差分ファイルを得られます。
何で 2>/dev/null
が必要なのかというと、gitのconfigで autocrlf=true
が設定されているので、改行がLFのファイルがあると警告が出ます。それでもいいのです♪(統一とか面倒)
あるコミット間の差分ファイルを得たい場合は、
git diff --name-only --diff-filter=ACMR [コミットAのhash] [コミットBのhash] 2>/dev/null
と指定すると取れます。
そのファイルをzipに固めれば出来上がりです。
zip -v diff-files.zip `git diff --name-only --diff-filter=ACMR 2>/dev/null`
git archiveを使うのも手ですがいろいろ面倒ですので、zipを使います。
WSLのubuntuだと最初は入っていないので、 sudo apt install zip
してください。