#!/bin/zsh -feu


revert_conflicted_file()
{
    # typeset -lr
    # local
    readonly FILE=$1

    echo "reverting $FILE">&2
    git rm -f $FILE
    git checkout HEAD -- $FILE
}


usage()
{
    cat <<EOF
usage: ${0##*/} [+-h}

${0##*/} file...

${0##*/}   ... all

EOF
}


while getopts :h OPT; do
    case $OPT in
        h|+h)
            usage
            exit 0
            ;;
        *)
            usage >&2
            exit 2
    esac
done
shift OPTIND-1
OPTIND=1
if [ $# -gt 0 ]; then
    while  [ $# -gt 0 ];
    do
           revert_conflicted_file $1
           shift
    done
else
    # all:
    git ls-files -u  | cut -f 2 | sort -u | {
        while read file; do
            revert_conflicted_file $file
        done
    }
fi
