Source Control

From Coder Merlin
Within these castle walls be forged Mavens of Computer Science ...
— Merlin, The Coder
Undo-redo

Prerequisites[edit]

Background[edit]

Introduction[edit]

Source control enables us to track and manage changes to our code. This functionality becomes increasingly critical as the size of our projects grow both in terms of the lines of code and the number of coders. Source control shows us who changed the code and when. We're able to compare one revision of code to another. And, when necessary, we can rollback changes to a previous revision. Source control can be a tremendous help to you (and your team) when you want to easily recover from accidentally damaging a project and as such, provides you with the freedom to experiment without fear. However, you must use the source control system regularly and often or it won't be able to help you. In this experience we'll configure our source control system, learn (a bit) about how to use it, and then place our journals under source control.

Git[edit]

There are many options to choose from when selecting a source control system. We'll be using one called git, created by Linus Torvalds in 2005. It's a distributed version-control system, meaning that every Git directory on every computer is a repository with a complete history and full version-tracking abilities.

Configuration[edit]

As a first step, we'll need to let Git know about our name and email address. Be sure to change your name and email address appropriately. You'll need to be able to receive email at the address you specify in order to complete the setup process.

jane-williams@codermerlin:~$ git config --global user.email "jane@williams.org"

jane-williams@codermerlin:~$ git config --global user.name "Jane Williams"

Initialization[edit]

Let's setup a new directory for all of our experiences and within, a directory for this experience:

jane-williams@codermerlin:~$ mkdir Experiences

jane-williams@codermerlin:~$ cd Experiences

jane-williams@codermerlin:~/Experiences$ mkdir W1006

jane-williams@codermerlin:~/Experiences$ cd W1006

jane-williams@codermerlin:~/Experiences/W1006$ 

Key Concepts[edit]

Exercises[edit]

References[edit]