Skip to content

Instantly share code, notes, and snippets.

@ameyamashiro
Created January 12, 2016 06:20
Show Gist options
  • Save ameyamashiro/2e6cdf82ed0c70a26f46 to your computer and use it in GitHub Desktop.
Save ameyamashiro/2e6cdf82ed0c70a26f46 to your computer and use it in GitHub Desktop.
Git リポジトリから指定の Commit までの差分ファイルをまとめて zip ファイルを作成
#!/bin/sh
source "$(git --exec-path)/git-sh-setup"
# echo $GIT_DIR
# echo $GIT_OBJECT_DIRECTORY
EXPORT_FILENAME="diff-"`git rev-parse $1 | cut -b1-7`"-to-"`git rev-parse HEAD | cut -b1-7`
if [[ $# == 1 ]]; then
if [[ -n $(git rev-parse --verify --quiet $1) ]]; then
# git archive -v --format=zip HEAD `git diff -C --name-only --diff-filter=ACMRTUXB $1 HEAD ` -o ~/Desktop/${EXPORT_FILENAME}.zip
git diff -C --name-only --diff-filter=ACMRTUXB $1 HEAD | sed -e 's/^.*$/"&"/g' | xargs zip ~/Desktop/${EXPORT_FILENAME}.zip
else
die "$1 does not exist"
fi
else
usage
fi
@ameyamashiro
Copy link
Author

日本語ファイル名の問題を解決した差分抽出スクリプトです。
git-diffzip として、パスの通っている場所へ設置してください。

Mac のみで検証しています。

git diffzip {hash}

とすると現在のコミットから hash までの差分を抽出して zip ファイルをデスクトップへ設置します。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment