Ensure that a directory reflects a specified Git commit
The two calls to checkout look well to me.  They are simple method calls to self with no arguments, and I can easily see that both calls are the same.  You avoid making two identical calls to run_command(['git', 'clone', ...]).

The "something really obvious" might be a return:

def ensure_correctness
  if exist?
    return if correct_version?
    delete!
  end
  checkout
end