Thrust exits with error code on failure, and only reset hard if the working directory was initially clean