Software version control with Git
Software development involving more than 1 developers will surely benefit from the use of a software version control. It will be a burden and takes up lots of additional time, at the early stages of implementing such a system. From my experience, its essential to establish the use of any version control system (VCS) at the start of a software development project.
This article is an introduction to Git for Project Managers, Software developers, Content developers, Database, Application support and other related members.
What is Git?
Git is a widely available version control system which is supported in most modern software development tools. Git is available as a download and also as an online version named Github. Git is not an abbreviation, as we go back to the year 2007 within the code it was labeled as "the stupid content tracker", as nobody expected the explosive used of this software. A British slang, git, meant a rotten person. The name "git" was given by Linux Torvalds, seemingly to describe himself. The original label for git will not be available any more in newer version of Git source codes.
Moving on, these days there are many Git implementations. E.g. want to demonstrate your projects in Linkedin? Easily add your published github projects in your Linkedin profile. As for me, I can only publish personal proof of concept, as work related projects doesn't permit me to publish them online (naturally).
Why Git?
Git is licensed as an open source software (OSS). That's right, you can download and have access to the code. This allows you to look under the hood, determine if its suitable for you and to fix the code to suit your needs.
Its security and stability is proven by its use by a huge number of corporations and government organisations.
How does it work?
Git that is installed on your computer allows you full management. An installation on a server, allows each git user to access, update, delete contents that they are authorised. Here are generic steps for a user with access to git on the network.
- The programmer creates a project with git. This typically will have a directory named .git in the main project directory.
- The programmer works in a branch of the git. The default branch is known as "master". Its possible to create one or more branches with different names.
- Add and edit files in the directory. Inform git to "add" these files into git's "staging" area. Its common to update and remove files in the "staging" area until the bugs have been reduced to an acceptable level.
- Once all the required files have been added to the "staging" area, inform git to finalise them by moving these files to the "git repository". This is known as "commit" operation and each serves a revision version of changed files.
- Further edit, delete, add of files only require repeat of steps 3 and 4 above. At anytime, the programmer can roll back to a specific commit operation.
- When the programmer is ready to have the project available to other users, the current branch of the git project is push to the git repository in the network. This is known as "push" operation.
In step 4 above, the version of files are all stored as BLOB (binary large object) format and encrypted as SHA1 (Secure Hash Function ver 1). This allows git to verify and makes it impossible to change file, date and commit message of any version of the git files without going through the git system.
Git serves as a more reliable way than the old fashion way for creating shared folders for different version of software code and other files.