use quotes
rm -f won't return 0 exit code if called on non existant file
redirect pushd/popd stdout to dev/null and use run_or_fail when retrieving COMMIT