if contains f $argv switch $argv[1] case checkout git-checkout-fuzzy case add git-add-fuzzy case show git-show-fuzzy case merge git-merge-fuzzy case branch if test "$argv[2]" = -d git-delete-fuzzy else if test "$argv[2]" = -D git-force-delete-fuzzy else echo "Not a fuzzy option." return 1 end case reset set commit (git-commits) and if test "$argv[2]" = --hard git reset --hard $commit else git reset $commit end case "*" echo "No fuzzy option." return 1 end else if count $argv >/dev/null command git $argv else command git status -sb end end