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

  • Unity Collab

3.1. Introduction

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 :cite:`atlassian_what_is_version_control`.

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)

3.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).

3.3. Unity collaborate

Collaborate features makes it easy for teams to save, share, and sync their Unity projects with others, regardless of location. It’s cloud enabled and built directly into Unity. Learn more about Unity Collab here: <https://unity.com/unity/features/collaborate>

3.4. References