Why a Github account?


Why a Github account?

All over the internet you will find many references about git and Github. The simplest way to think of it is 1) git is a software, and 2) Github a cloud platform that facilitate collaboration. Before going any further see this video for a quick and clear intro:

Alt text

Why a version control software?

So the software git is the Version Control software that will help you track changes to your code, and set your code back to previous version easily. Originally designed for code, this software can be used for other type of projects (e.g. website, notes, electronic project, etc.).

This becomes very convenient when your code (or project.) starts to evolve and you want to keep an history of the changes, as well as being able to go back to a previous version which for instance free of a recently added bug.

Why a cloud platform like Github?

There exists a variety of other providers of online platform where to save in the cloud your version controlled project. Github is one of them. Bitbucket, Gitlab, Sourceforge, or Launchpad are other providers for equivalent service. Github is the service we currently use in our team, and that we, at UiO, also get an account along to our UiO account.

How to use all of this?

The first step is to open an account on Github, or use your UiO github account. Once you have found or created a project (aka. repository) you will need to copy (aka. clone) the project to your local computer. Then, with your favorite text editor (notepad, notepad++, sublime, gedit, atom, vi, nano, or whatever) you can start create file and folder in the folder of your project on your computer. Once your done for the day you will upload (aka. push) changes to github after giving it some comments (aka. commit). The next time you want to work on this project, you will download (aka. pull) the latest version of the project to your local computer. In this manner many people can collaborate and refer to the cloud version of the code.

For doing all this process, I usually have in my Home directory, a folder called github, in which I have all my different projects. This is for instance the place I will clone the various projects I would like to work on. From this folder, I typically use a terminal where to run the few useful commands. Depending on the OS platform you are using (e.g. Windows, MacOS or Linux), you might find software with a graphical interface, but many, simply use the command line from a terminal to go through that process. There is a set of few basic functions to know, which becomes quick and handy to use from a terminal. No need to panic!

With this process, you will build over many days multiple version of your code, and every changes you had done will be remembered and accessible. There are plenty of online tutorial from websites to videos.

Why should you learn it?

While Github is a service provider, and many other organizations provide similar services that might suit better your needs, knowing the concept behind Git is extremely useful for collaborating efficiently on a project. If tomorrow you would like to collaborate on a paper, or a software project, then you already know the concepts and an actual tool to realize this collaboration effectively among your team members.

Version controlled software has played a critical role in the evolution of open-source software, for instance the entire Linux OS is accessible online, and anyone could potentially contribute to it. In this manner, you can start your own software, open its source code, and find contributors genuinely interested to contribute and maintain it alive. So, jump on the train, this is where tools of tomorrow are being built!