I think this `Checkout` will result in a Detached Head state? We might need to by-pass the public `Checkout` methods and work against the `CheckoutTree` methods (and update the Head reference ourselves, if necessary).