4. Managing source code

The objectives of this tutorial are to familiarise yourself with:

  • version control system (Git);

  • cloud-based collaboration platforms for developing code (Github);

  • key concepts involved in code development workflows (forking, cloning, creating issues, committing code, pushing and pulling code, creating pull requests etc); and

  • manging version control of local code repositories from Gitkraken (GUI) and the command line.

4.1. Version Control

Version control is the practice of tracking and managing changes to software code (similar to tracking changes in a Microsoft Word document). Version control software keeps track of every modification to the code in a special kind of database. If a mistake is made, developers can turn back the clock and compare earlier versions of the code to help fix the mistake while minimizing disruption to all team members [Atl].

Git is a version control system that is used to track changes that are made to a file or project. It was made by Linus Trovalds (the creator of the Linux operating system).

GitHub, Bitbucket, or GitLab, on the other hand, are cloud-based collaboration platforms that allow developers to easily share open- or closed-source software, manage, and collaborate on different projects.

The following is an ordered list of tutorials to help you understand how to use the above tools. This includes tutorials for managing version control of code using the GitKraken GUI which makes understanding how to use git significantly easier than with traditional approaches that teach how to use the tool from the commandline.

  1. What is github?

  2. Introduction to github

  3. Tutorials for learning how to use git using the GitKraken GUI

  4. Understanding a basic code development workflow with Github

  5. Git handbook for learning how use git from the commandline

  6. Migrating your existing projects to github (optional)

4.2. Educational accounts for Github and Gitkraken

If applicable, you can signup for an educational account (students and teachers) on https://education.github.com/. This will also provide you access to a Gitkraken pro account allowing you to use this tool for managing version control of closed-source repositories (the free version only allows use with open-source repositories - see their terms and conditions for more information).

4.3. References

mar

Daring Fireball: Markdown Syntax Documentation. URL: https://daringfireball.net/projects/markdown/syntax#philosophy (visited on 2021-05-06).

doc

Introduction — Documentation system documentation. URL: https://documentation.divio.com/introduction/ (visited on 2021-05-06).

sna21

Snake case. February 2021. Page Version ID: 1007486237. URL: https://en.wikipedia.org/w/index.php?title=Snake_case&oldid=1007486237 (visited on 2021-05-01).

Atl

Atlassian. What is version control \textbar Atlassian Git Tutorial. URL: https://www.atlassian.com/git/tutorials/what-is-version-control (visited on 2021-05-01).