Introducing DGit
The interesting bit here will be how they reconcile potentially conflicting changes between the replicas.  It is pretty easy to replicate the data, because git is content-addressable and can go garbage collection - I think even rsync would work.  The challenge is that when e.g. the master branch is updated, you essentially have a simple key-value database that you must update deterministically.   I look forward to learning how github chose to solve that challenge!