Skip to content

Instantly share code, notes, and snippets.

@nenjiru
Created November 21, 2011 02:20
Show Gist options
  • Save nenjiru/1381427 to your computer and use it in GitHub Desktop.
Save nenjiru/1381427 to your computer and use it in GitHub Desktop.
Gitで指定したリビジョンとの差分ファイルを出力する
#!/bin/sh
if [ "$#" -lt 2 ]
then
echo "usage: gitdiff [target] [export]"
echo "example: gitdiff master ../files"
exit 1
fi
## Export directory
putdir=$2
putdir=`dirname ${putdir}`"/"`basename ${putdir}`
if [ ! -d $putdir ]
then
mkdir -p $putdir
fi
## Git diff
git diff --name-status $1 > "$putdir.txt"
## File export
while read diff
do
if [[ $diff =~ ^[AM] ]]
then
file=`echo $diff | cut -d " " -f 2`
dir="$putdir/"`dirname ${file} | sed 's/\.//'`
if [ ! -d $dir ]
then
mkdir -p $dir
fi
cp $file $dir
echo "- $file"
fi
done < "$putdir.txt"
echo "done."
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment