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.

  1. The programmer creates a project with git. This typically will have a directory named .git in the main project directory.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

要查看或添加评论,请登录

Nicholas S.的更多文章

  • Saving Keras Model

    Saving Keras Model

    The Python3 command line is great to test out commands, and the ipython is the improvement on is as it provided a more…

  • Machine Learning with TensorFlow and Keras on Ubuntu - Part 3

    Machine Learning with TensorFlow and Keras on Ubuntu - Part 3

    Having installed TensorFlow on a machine with GPU and being able to verify that the GPU is in use, this next article…

  • Machine Learning with TensorFlow and Keras on Ubuntu - Part 2

    Machine Learning with TensorFlow and Keras on Ubuntu - Part 2

    So far, the base system and drivers have been installed and these are what I have installed on Windows 11, WSL2. One…

  • Machine Learning with TensorFlow and Keras on Ubuntu - Part 1

    Machine Learning with TensorFlow and Keras on Ubuntu - Part 1

    I was interested to understand better how computers solve complex problems like recognising images and extract meaning…

  • Show git differences between commits

    Show git differences between commits

    In managing code sources, GIT approach expects the code to be at different stages, which are "staged" or "commit"…

  • Server performance limits

    Server performance limits

    Stress test tools provide a planned approach to simulate multiple user access to servers. The most commonly used is…

  • VUE for Single Page Application

    VUE for Single Page Application

    AngularJS (the oldest of the 3) and ReactJS have been at the limelight of the latest technologies in the area of Single…

  • Amazing Malaysians - Hew Ah Kow

    Amazing Malaysians - Hew Ah Kow

    What does a half boiled egg maker and a 3-pin plug have in common? When Hew Ah Kow introduced a plastic ware to make…

  • KVM virtual machine on Centos 8 - Change name and Create snapshots

    KVM virtual machine on Centos 8 - Change name and Create snapshots

    Virtualisation provide a more efficient use of memory, disk and all CPU on a server. Separate servers can be managed…

  • Raspberry Pi: Getting Started

    Raspberry Pi: Getting Started

    Was considering on several options for "embedded systems" and finally settled with Raspberry Pi. Getting Started

社区洞察

其他会员也浏览了