自分が作成した成果物だけを纏めたい時に便利
比較元のブランチをチェックアウトした状態で以下の コマンドを実行します。
git archive HEAD `git diff --name-only 比較先のブランチ名 HEAD --diff-filter=ACMR` -o 比較先のブランチ名 -o ファイルの出力先;
gitconfigにaliasを追加しておくとさらに便利
~.gitconfig
[alias]
# 指定したブランチ間で差分があるファイルをZIPで出力する
archive-branch = "!f() { git archive HEAD `git diff --name-only $1 HEAD --diff-filter=ACMR` -o $2/`date '+%Y%m%d%H%M'`.zip ;}; f"
# 指定したタグ間で差分があるファイルをZIPで出力する
archive-tag = "!f() { git archive $2 `git diff --name-only $1 $2 --diff-filter=ACMR` -o $3/`date '+%Y%m%d%H%M'`.zip ;}; f"
リモートのmasterブランチとの差分があるファイルだけをカレントディレクトリにzipで出力する場合
git archive-branch origin/master ./
タグAとタグBの差分があるファイルだけをカレントディレクトリにzipで出力する場合
git archive-tag tag1 tag2 ./