This has been a problem forever: You’ve got a project made out of files – something like the source code for an Arduino sketch or a Raspberry Pi project in Python, for example – and as you work on it, you need to know things like:
What the last stable, known-good version looked like.
What version is deployed to hardware in the field.
When, roughly, it was last changed.
Version control systems, also variously known as revision control, source control, and so on, have been around since not long after programmers first started to grapple with this problem. A lot of their core ideas can be found in classic Unix utilities like diff and patch, designed to examine the differences between individual files or apply changes to them from elsewhere. Nowadays, a respectable VCS can usually:
Store a project’s entire history in a single directory.
Track exactly how individual files changed, and when.
Track who they were changed by.
Log human-readable descriptions of changes.
Merge sets of changes from different people.
Display the differences between any two points in a project’s history.
Store multiple concurrent branches of a project, with different changes on each.
Git is the most widely used VCS in the open source community, and GitHub, a web-based platform for hosting Git projects, has become the go-to place for collaborating on source code, supplanting sites like SourceForge and Google Code.
This stuff comes up a lot lately because we keep a lot of stuff in Git. If you’re looking to work with Adafruit-supplied code or submit changes, this may be a good place to start.
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.