GeoGit is a Decentralized Version Control System (DVCS) for geospatial data. This presentation introduces the ideas and concepts upon which GeoGit is build, giving insight into its architecture and technical details. It is targeted at developers and technically inclined users interested in understanding the inside of GeoGit and find out where the powerful capabilities of GeoGit come from. In particular, the following ideas will be discussed. *Structure of a GeoGit repository: How is a repository organized? *Data storage in GeoGit: How is data stored so GeoGit can manage it efficiently? *Differences and similarities with git: A comparison of strategies, with special emphasis on those elements that do not share the same approach as git and are more adapted for the particular case of geospatial data. *Extending GeoGit: From customizing GeoGit with simple hook scripts to adding full new commands or data backends *Scalability and performance. *The GeoGit web API: A discussion about the different ways of interacting with a GeoGit instance.