Git is one of the most widely used distributed version control systems, described by developers around the world as the number one VCS service. It runs only from terminal, but several front-ends are available for download.
It is a free and open source version control system application that can handle both large and small projects with maximum efficiency and speed. The program can be easily described as being small, fast and distributed.
The program comes with a handful of commands that can be easily remembered by anyone from the get-go. All the operations are performed locally, and has been engineered to work on the Linux kernel.
Included commands are add, bisect, branch, checkout, clone, commit, diff, fetch, grep, init, log, merge, mv, pull, push, rebase, reset, rm, show, status, and tag. You can easily learn what each command does by running the git --help command from a terminal window.
Features at a glance
When using Git, users will be able to add files, checkout branches or paths, clone repositories, create empty Git repos, join multiple development histories, display the working tree status, record changes, as well as to create, list or delete branches.
In addition, the application allows users to view changes between commits and working trees, print lines that match a pattern, view commit logs, download refs and objects, rename or move files, symlinks and directories, update remote refs, and remove files from a working tree.
Various graphical front-ends exist
Even if it’s a command-line only software, various graphical user interfaces (GUIs) are available, including git-cola, SmartGit, GitEye, giggle, and gitg. The project outclasses SCM (Software Configuration Management) utilities, such as CVS, Subversion, ClearCase, and Perforce, by having cheap local branching, multiple workflows, and convenient staging areas.
Summing up, Git is a free version control system that features lightning fast performance, it is easy to learn, and has a very small footprint. With Git you can do frictionless context switching, role-based code lines, feature based workflow, and disposable experimentation.