$ git clone --bare https://github.com/example
This command will make the new itself the $GIT_DIR. And the branch heads at the remote are copied directly to corresponding local branch heads, without mapping. When you use this option, neither remote-tracking branches nor the related configuration variables are created.
$ git clone --mirror https://github.com/example
Just like the bare clone, a mirrored clone includes all remote branches and tags, but all local references (including remote-tracking branches, notes etc.) will be overwritten each time you fetch, so this will always be the same as the original repository.