Skip to content
Florian Schneider edited this page Jun 25, 2015 · 1 revision

Version control with git and GitHub

To clarify the distinction

  • git is a version control system, a slim software on your computer that helps you to keeps track of changes on your files. You can label important points in project time using tags and branches, and revert development if it took a wrong turn. This helps to have a progressive code development and keep the working directory clean and uncluttered by 'old' versions of your code. Version control is suitable for all kinds of text files, e.g. source code, scripts, latex.
  • GitHub is a hosting service that hosts remote copies of your git repositories online. A suite of project management tools helps to keep a clear project structure (README and LICENSE files) and facilitates collaborative work (wikis and issues). The repository can be public, i.e. the full code is visible and available to the world, or private, i.e. only registered collaborators can view the code. Edits are only possible by registered collaborators. Any other GitHub user can fork public repositories and ask for integrating the own edits via a pull-request.

git

  • Principles and basics at the CASCADE wiki (another project of Sonia's group)
  • the official git book (full online access)

there are thousands of git introductions and tutorials out there. Just ask google.

GitHub

GitHubs has a very supportive research policy and provides non-commercial research and educational projects with free-of-charge private repositories. As an individual researcher you can apply as well for your own projects.

Thus all the useful features of GitHub are available to our ongoing projects and we can liberally choose between private or public development.

Overview of GitHub features:

  • publish code: hosting your code for the public, get a DOI for your code
  • collaboratively work on code: review and develop
  • manage code development: use issue tracking and set milestones
  • choose a license: select from many possible licensing schemes for code or text
  • documentation: keep a wiki alongside with your research project, record the version history and solved issues of the project