#!/bin/sh # USAGE: # Working directory needs to be git repo # call with name of directory you'd like to dump to # if used with a web server, make sure to always serve type text/plain # or append .txt to fullpath set -eu DIR="/var/www/git-dump/$1" files=`git ls-tree --full-tree -r --name-only HEAD` rm -rf "$DIR" echo "$files" | while IFS=$'\n' read -r f; do subdir=`dirname $f` fulldir="$DIR/$subdir" mkdir -p "$fulldir" fullpath="$DIR/$f" git show HEAD:"$f" > "$fullpath" if file "$fullpath" | grep -q "text"; then : else echo "Binary file" > "$fullpath" fi done