# Git

Git is a distributed version control system (DVCS) for tracking changes in computer files and especially useful to coordinate simultaneous work on those files among several people. It has several key advantages over the process of simply sharing files via USB drives or cloud services like Dropbox, iCloud, OneDrive and so on. All files tracked by Git reside in a single folder and its subdirectories, the so called repository. During the RoboLab courses we will use our Gitlab as a host for all the repositories.

## Usage

### General Rules

Firstly, git helps us to keep track of your progress and verify you did not plagiarize parts of the solution. Secondly, it also helps you and your teammates keeping track of evolving code and each other’s work. Finally, in case something may get broken, e.g. your code does not work any longer or your machine crashed, regular commits can save your day. But keep in mind, that version control does not replace a backup!

By the way: a single monolithic commit just right before the exam will be reflected in a worse grade. In addition to that, all group members should contribute to the project equally since it represents a team effort. Obviously quantity isn’t as important as quality of the submitted code.

https://se-gitlab.inf.tu-dresden.de/robolab-<season>/<term>/group-<id>
The project id consists of the <season>, which is either spring or autumn depending on which RoboLab course you are participating in, i.e. Spring Course (INF) or Autumn Course (NES) and the <term>. This is the year your course has started in the format wsyyyy or ssyyyy. For instance, if the introduction took place in the current winter semester (e.g. ws1920), <term> will be ws2019.
<id> has been assigned to you at the beginning of the course. Please make sure to include leading zeros and fill up the id to three digits, e.g. group 42 will enter 042.