Git
Git is a distributed version control system: tracks changes in any set of files, usually used for coordinating work among programmers collaboratively developing source side during software development. Git was initially designed and developed by Linus Torvalds for Linux kernel development. Git is a free software distributed under the terms of the GNU General Public License Version 2.
Version Control System:
A Version Control System (VCS) is software that helps software developers to work together and maintain a complete history of their work. The functions of a VCS are :
- Allows developers to work simultaneously.
- Doesn't allow overwriting each other changes, i.e. separate workspaces.
- Maintains a history of every version and allows you to go through them.
Advantages of GIT:
> Free and open source
Git is released under GPL's open-source license. It is available freely over the internet. You can use Git to manage your projects without paying a single penny. As it is open-source, you can download its source code and also perform changes according to your requirement all for free.
> Fast and small
As most of the operations are performed locally, it gives a huge benefit in terms of speed. Git doesn't rely on a central server thus, no need to interact with the remote server for every operation. Git as written in 'C', avoids runtime overheads associated with other high-level languages. Git illustrates the efficiency of GIT at compressing and storing data on the client side.
> Implicit Backup
The chances of losing data are very rare when there are multiple copies of it. Data present on any client-side mirrors the repository, hence it can be used in the event of a crash or disk corruption.
> Security
Git uses a common cryptographic function called secure hash function (SHA1), to name and identify objects within its database. Every file and commit is check-summed and retrieved by its checksum at the time of checkout. It means it is impossible to change files, dates and commit messages and any other data from the Git database without knowing Git.
> No need for powerful hardware
In the case of CVCS, the central server needs to be powerful enough to serve the requests of the entire team. For the smaller teams, it is not an issue, but as the team size grows, the hardware limitations of the server unless they need to push or pull changes. All the heavy lifting happens on the client side, so the server hardware can be very simple indeed.
> Easier branching
CVCS uses a cheap copy mechanism, If we create a new branch, it will copy all the codes to the new branch, so it is time-consuming and not efficient. Also, the deletion and merging of branches in CVCS are complicated and time-consuming. But branch management with Git is very simple. It takes only a few seconds to create, delete, and merge branches.
follow on to the git tutorial.
Next: lifecycle, configuration, initialization