What's a Repo?
Repo is short for repository. Think of a repo as a folder of files and all the changes made to the files are recorded. If there’s ever a problem with a file you can go back in time to figure out what changes you made. The most common use for repos are for managing large code projects but repo tracking is good for a variety of applications in the hardware world including PCB layouts, firmware, datasheets and documentation.
For example, let us imagine someone has created an Arduino sketch to demonstrate how to read an analog sensor.
language:c byte myValue = 0; myValue = analogRead(A0);
There’s a couple improvements that could be made to this code (analogRead returns an int not a byte!). If the code was just a file on someone’s website you’d have to send them an email and suggest the improvements. This is a bit tedious, and when a project gets longer than a few lines of code, email is not a viable way to collaborate on projects. GitHub allows one person to manage their own projects (also called revision or version control) and it also allows lots of people to work together on large projects (source code management).
What is this git thing?
Git is a software management tool designed for extremely large coding projects (such as Linux). Because the majority of work that we do at SparkFun is on smaller projects, we use only a fraction of its capabilities. While Git uses a command line interface, GitHub was created to give Git a slicker looking web interface. Furthermore, GitHub released a GitHub Desktop GUI for Windows (graphical user interface) that makes moving repos around even easier.
We're going to cover a few things in this tutorial:
- Download ZIP - How to get something from GitHub
- Manage - How to manage your own stuff on GitHub
- Pull Requests - How to improve something on GitHub
- Wiki and Issues - There is lots more on GitHub including Wikis and Issue Tracking