#!/bin/sh hard='no' digit=1 parseArgs () { for var in "$@"; do if [ "$var" = "--hard" -o "$var" = "-h" ]; then hard='yes'; elif `echo $var | grep -q [^[:digit:]]`; then echo "You entered an invalid option. Valid options are [--hard|-h] [commitcount]." 1>&2 exit 1; else digit=$var fi done } parseArgs $@ if [ "$hard" = "yes" ]; then git reset --hard HEAD~$digit else git reset --soft HEAD~$digit git reset fi