Right, `GIT_CHECKOUT_NONE` is a [dry run](https://github.com/libgit2/libgit2/blob/development/include/git2/checkout.h#L36-L74). This is probably a case where the default should be `GIT_CHECKOUT_FORCE`, but allow the caller to override it.