Every developer has a full copy of the repository - not just the latest file.
Every copy is a full backup. No single point of failure.
Upload your commits to the remote server so others can see them.
Download new commits from the server to your local repo.
Copy the entire repository (with full history) to your machine.