An Introduction to Version Control Using Git @LearnFactory Nigeria.

A command line session showing repository creation and the addition of a file.

Few weeks ago when i arrived at LearnFactory Nigeria, one thing was on my mind; to learn all that i can to the very best of my abilities. its been over five weeks now since i arrived here and i look backwards without regrets.

This week presented us another wonderful opportunity to learn and practice codes but more importantly, we soon began to realize that more than just the ability to code, we required the ability or aid to in some way preserve our creations.

For me this class on introduction to git and its usage seemed to be all the knowledge we needed in the world to ensure that we could preserve our best works and even share our work with a host of many other individuals anywhere on the planet.


Version control can be defined as the use of systems to record the changes made to a file or set of files over a duration of time so as to enable one recall specific versions of the file much later in the future. For the purpose of this write up, software codes or program files are the files we seek to apply version control on.


well, for one, lets say you are a software developer or a web or graphics designer who, like me, would very much love to keep a record of every version of a code or design you think may be required later in the future ,then getting and using a version control system would be a very wise thing to do considering the very many benefits such system confers.


  1. Reverts selected files back to a previous state thereby avoiding the need to repeat every previous process as a consequence of a slight error that may have been made at the final stages of the project.
  2. Helps you compare changes on a file to see which version of the file or design best suites the purpose of the overall project .
  3. Confers upon you the ability to see who added the last modifications to the file that may have likely introduced an error thereby making the issue of error handling in a collaborative work easier and faster. The system does not just tell you who, it also is able to tell you when.
  4. In a world were collaboration and specialization is on a growing demand, the use of version control has made it easier for members of a team on a project to all work collaboratively on one project regardless of where their individual locations on the planet might be.


Version control systems, like many other kinds of systems entertains variety in types but regardless of what the types maybe , the whole class of types can be classified narrowly into just two categories : Gits and others(perforce, DVC’s etc). Although both categories tend to share a similitude in the user interface design, they vary extensively in the method of their data handling. Both categories think of the data they handle in different forms.

While the other systems often tend to think of the information they hold as a set of files and the changes made to each file over time, the Git systems think of its data more like a series of snapshots of a series of file systems. With Gits, everytime you commit or save the status of your project,Git basically takes a picture of what all your files look like at that very moment and then automatically stores away a reference that leads you to that snapshot.

The experience of having to use Git as a major version control tool was an interesting experience all thanks to Master Chidera Ugwuanyi who took it upon himself to explain out every little detail of the process while guiding us to create our own very first repository on

From his teachings,i deduced the following about the Git system.

  1. Apparently, the Git system has got three basic/main states in which your files can exist in at any one point in time viz;

a)Files can be in a committed state: This means that the data is safely stored off somewhere in your local database.

b)Files can be in a modified state: This means that you have made modifications to the file but you havent committed it to your database yet.

c)Files can be staged:Files in this state are files that you may have marked as haven been modifed and temporarily awaiting to be committed to the database during your next commit session.

Git file directory.


Before we began, master Chidera explained the concept of master and the process involved in pulling a branch from the master. He talked about the merging and staging processes while also pointing out the unique ways used by the system to identify and sort out likely sources of error during a git pull process.

we began by logging into our individual git hub accounts. we then opened the project file we wanted to push off to Git on our individual local systems. on the terminal, we called up the Git file directory and checked the Git statusand then we proceeded to create a repository on Github and then added (git add. — adds the whole file)the file. we then proceeded to do a git commit all on the terminal interface.At the end , it was a great feeling to have pushed off my first sets of source codes from where i could always work to perfect them in future.

Once i studied Physics and enjoyed being an on air personality, now i’m a software engineer who enjoys writing about codes and great digital products.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store