So it turns out using git! will not throw a fatal with ls-remote if there is no source. Using backticks lets this filter through to the console and not explode. Similarly, using git! for the lower command doesn't seem to work.