GeoGit is an open source tool that draws inspiration from Git, but adapts its core concepts to handle distributed versioning of geospatial data.
Track GeoSpatial Data Edits
Users are able to import raw geospatial data (currently from Shapefiles, PostGIS or SpatiaLite) in to a repository where every change to the data is tracked. These changes can be viewed in a history, reverted to older versions, branched in to sandboxed areas, merged back in, and pushed to remote repositories.
GeoGit is written in Java, and available under the BSD License.