Skip to content

Instantly share code, notes, and snippets.

@lightsuner
Last active August 29, 2015 13:56
Show Gist options
  • Save lightsuner/9227141 to your computer and use it in GitHub Desktop.
Save lightsuner/9227141 to your computer and use it in GitHub Desktop.
How to use: gda HEAD~12 HEAD~4 file.zip - (All arguments are optional). Git Diff Archive Tool - small tool for archiving all changed files between two commits.
#!/bin/sh
NOW=$(date +"%Y-%m-%d_%H%M%S")
ZIP_FILENAME="git_diff_$NOW.zip"
FROM_SHA="HEAD~"
TO_SHA="HEAD"
FOREGROUND_COLOR="\033[0m"
GREEN_COLOR="\033[0;32m"
RED_COLOR="\033[0;31m"
YELLOW_COLOR="\033[0;33m"
# Set FROM_SHA var
if [[ -n "$1" ]]
then
FROM_SHA=$1
fi
# Set TO_SHA var
if [[ -n "$2" ]]
then
TO_SHA=$2
fi
# Set TO_SHA var
if [[ -n "$3" ]]
then
ZIP_FILENAME=$3
fi
COMMAND="git archive -9 --format zip --output $ZIP_FILENAME $TO_SHA $(git diff --name-only $FROM_SHA $TO_SHA)"
echo $"Starting ${GREEN_COLOR}Git Diff Archive Tool${FOREGROUND_COLOR}:"
echo "Try to make ${YELLOW_COLOR}${ZIP_FILENAME}${FOREGROUND_COLOR}" \
"between ${YELLOW_COLOR}${FROM_SHA}${FOREGROUND_COLOR} and ${YELLOW_COLOR}${TO_SHA}${FOREGROUND_COLOR}..."
$($COMMAND)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment