GeoGig 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.

GeoGig is written in Java, and available under the Eclipse Distribution License (a BSD 3 Clause license).

1.2.0 Release

We are firmly in 'release candidate' mode, working to release early and often, so please join us. Testing, documentation, ideas and patches are all greatly appreciated. Don't hesitate to get in touch with any issues, feedback or encouragement.

Quick Start

1. Download Version 1.2.0.

2. Unzip the to an applications directory, and then add the unzipped geogig/bin/ folder to your PATH.

3. Import your spatial data to get started:


~$ geogig help

List geogig commands

~/new-folder $ geogig init

Initialise a geogig repository in new-folder

~/new-folder $ geogig shp import your_shapefile

Import a .shp file (or try OSM, SpatialLite or PostGIS)

~/new-folder $ geogig ls

What's in your geogig repository

~/new-folder $ geogig status

What you can commit to a snapshot

See more GeoGig instructions in our GeoGig Tutorial or try the GeoGig Workshop.

4. Additional information on how GeoGig works is available at the full User Manual.


GeoGig documentation is available online:

For background reading see these papers on the spatial distributed versioning Concept, Implementation and Potential Development.

geogig workflow overview


The project is hosted on github:

Discussion takes place on our GeoGig Mailing List. Please join and introduce yourself, we'd love to help, and to figure out ways for you to get involved.

There is also a GeoGig IRC channel on (#geogig). GeoGig developers can usually be found there.

Participation is encouraged using the github fork and pull request workflow:

  • Include test case demonstrating functionality
  • Contributions are expected to pass all tests and not break the build
  • Include proper license headers on your contributed files

Issues to help out on are at our issue tracker.

For those who can't code help on documentation is always appreciated, all docs can be found at and contributed to by editing in ReStructuredText and using standard GitHub workflows.

Our build is actively monitored using Jenkins.