# Git for non-programmers 1

## Why use a version control system (VCS)?

Have you ever tried to add a new feature to, or change (refactor) an existing part of, a piece of software (or improve a section of a document) and eventually realised that you made it worse and you aren’t sure how to get back to where you started? Perhaps, to avoid such a situation, you now have cluttered directories filled with my-code-v1, my-code-v2-plus-that-other-feature etc., etc. and you’re not quite sure which one does what you want. Version control will help you to keep a log of your changes as well as snapshots of the code as you apply them; it will also allow you to collaborate far more easily but, for now, we will focus on a single editor and a linear history.

## Beginnings

First make sure you have git installed either through a package manager or grab the appropriate package from the website. Once installed start your terminal emulator and see if

git help


gives you any output.

## Initialise

Initialisation is the same whether you have code already written or you are starting from scratch you can either navigate to the directory you would like to work in

git init


or specify the path

git init /path/to/my/files


### Example

I have a folder in my home directory where I keep code and a project I want to start called universe

git init /home/stripes/code/universe


Then I create a file called universe.py, a simple python script, in the project directory that looks like this:

print('Hello, Universe!')


Now to add some files to your repository run one of the following commands

git add file-name
git stage other-file


‘stage’ is a synonym for add so keep an eye out if you are reading any other documentation. The same command is used to add changes so after your first commit is completed and you begin to make new changes you will add them using the same command.

### Example

Following on from initialisation, to add universe.py to our git repository:

git add /home/stripes/code/universe/universe.py


## Commit

Once you have all of the necessary files added you can make your first commit

git commit


Now, assuming you haven’t used git before, you should get the message ‘Please tell me who you are.’ You should follow the instructions there to add your name and email address to your commits and then run our last command again.

This time git should open up your default text editor with some text like this:


# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
# Changes to be committed:
#       modified:   universe.py
#


The recommended style for a commit message is to start with a short, declarative statement of the change, e.g. Fix frobnicating problem or Add wibbly-wobbly feature followed by a blank line and optional elaboration. As this is our first commit it is traditional to use the message Initial commit so type it in, save the file and close your editor.

Initial commit

Add first bit of code that does something