Bare repositories are repositories that do not contain working copy files, but only the .git folder. A bare repository is essentially for sharing: if you use Git in a centralized way, pushing and pulling to a common remote (a local server, a GitHub repository, and so on), you will agree that the remote has no interest in checking out files you work on; the scope of that remote is only to be a central point of contact for the team, so having working copy files in it is only a waste of space as no one will edit them directly on the remote.
If you want to set up a bare repository, you only have to use the --bare option:
$ git init --bare NewRepository.git
As you may have noticed, I called it NewRepository.git, using a .git extension; this is not mandatory, but is a common way to identify bare repositories. If you pay attention, you will note that even in GitHub every repository ends with a .git extension.