The Git ecosystem

../_images/Git_logo.svg

Git is an open source distributed version control system with a huge ecosystem of support, tools, online knowledge, and extra functionality. Nothing else comes close. The Git ecosystem provides not just for version control, but also for synchronization, sharing, collaboration, and publishing.

Since Git is a distributed version control system, you can locate repositories where you please, including on your local storage or your institution’s Git server. You can set up links between repositories located in different locations and synchronize specific content between them. This allows you to set up custom workflows for development, testing, collaboration, deployment, and publishing — all managed via Git.

You have the option to synchronize to remotely-hosted repositories only as a final stage, after making improvements and ensuring quality using a local repository: Git supports an offline workflow that does not require a continual connection to a server, allowing you to control what of your work others will see. This aids collaboration because you can hide mistakes and messy experiments from collaborators or the public and share only quality work.

Tip

Git can be operated manually or scripted. This allows you to partially or fully automate workflows.

For sharing, publishing, and deployment, the GitHub cloud platform and a GitLab instance hosted by IIASA are available as places where to host Git repositories: all ForestNavigator partners can access these. For the repositories that you manage on these platforms, you can decide whether the repository is publicly accessible or private. When private, you can manage which users or systems can access the content. GitHub is suited for code and small data. The GitLab instance is suited for code and big data. Both platforms provide collaboration services for things such as:

  • User and machine access management

  • Release management

  • Issue tracking

  • Collaborative documentation via a Wiki

  • Automation of deployment through scripting.