Clone should use GIT_CHECKOUT_SAFE_CREATE For clone to work as expected, it should be using a SAFE_CREATE checkout (i.e. create files that are missing, even if the target tree matches the current HEAD).