Git is a distributed revision control system, where every working directory is a full-fledged repository with complete history and full revision tracking capabilities.
Git is categorized as DVCS (Distributed Version Control System), because is not dependant on a central server. So the academic way for working with Git is pushing/pulling data from/to each developer repository. This works in small teams or in a highly distributed development (open source projects that people are working around the world), but in mid-size teams or business companies, that require a central repository because of infrastructure/workflow process like Continuous Integration System, QA Checks before delivering, Environment Backups, External Manual Audits... seem that a traditional SCM should be desired. But this claim is far from reality, Git is still yourVCS; how about creating a theoretical central repository? I say theoretical because in Git there is no central repository at a technical level. This repository will act as central because of convention. I call, and in many other posts also call this repository origin.
A Git remote repository is a repository without working directory. Only composed by .git project directory and nothing else.
Git is not tied to any particular transmission protocol, it supports transmitting changes via USBstick, email, ..., or traditional way like HTTP, FTP, SSH, ...
What I am going to explain is how to install and configure this "central repo" in an Ubuntu Server.
Full Post Here