I had a co-worker git this well-known error message: error: refusing to update checked out branch: refs/heads/master error: By default, updating the current branch in a non-bare repository error: is denied, because it will make the index and work tree inconsistent error: with what you pushed, and will require 'git reset --hard' to match error: the work tree to HEAD. It *was* a bare repo, but the config file had bare=false because someone had simply copied a .git tree from a non-bare repo to make it. The issue is that we just use this: int is_bare_repository(void) { /* if core.bare is not 'false', let's see if there is a work tree */ return is_bare_repository_cfg && !get_git_work_tree(); } For the purposes of the error message it would be helpful if we also detected whether something didn't have a working tree, but was set to bare=false, and tell the user to updatet he bare=false to bare=true for his almost-bare repository. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html