Introduction to Git

Git is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers, but it can be used to track changes in any set of files. Its goals include speed, data integrity, and support for distributed, non-linear workflows.

Git was created by Linus Torvalds in 2005 for development of the Linux kernel, with other kernel developers contributing to its initial development. Its current maintainer since 2005 is Junio Hamano.

As with most other distributed version-control systems, and unlike most client–server systems, every Git directory on every computer is a full-fledged repository with complete history and full version-tracking abilities, independent of network access or a central server.

Git is free and open-source software distributed under the terms of the GNU General Public License version 2.

Git is primarily developed on Linux, although it also supports most major operating systems, including BSD, Solaris, macOS, and Windows.

The first Windows port of Git was primarily a Linux-emulation framework that hosts the Linux version. Installing Git under Windows creates a similarly named Program Files directory containing the MinGW port of the GNU Compiler Collection, Perl 5, msys2.0 (itself a fork of Cygwin, a Unix-like emulation environment for Windows) and various other Windows ports or emulations of Linux utilities and libraries. Currently native Windows builds of Git are distributed as 32- and 64-bit installers.

The JGit implementation of Git is a pure Java software library, designed to be embedded in any Java application. JGit is used in the Gerritcode-review tool and in EGit, a Git client for the Eclipse IDE.

The Dulwich implementation of Git is a pure Python software component for Python 2.7, 3.4 and 3.5.

The libgit2 implementation of Git is an ANSI C software library with no other dependencies, which can be built on multiple platforms, including Windows, Linux, macOS, and BSD. It has bindings for many programming languages, including Ruby, Python, and Haskell.

JS-Git is a JavaScript implementation of a subset of Git.

Open source:

  • gitolite, scripts on top of git software to provide fine-grained access control.
  • Gerrit, a git server configurable to support code reviews and providing access via ssh, an integrated Apache MINA or OpenSSH, or an integrated Jetty web server. Gerrit provides integration for LDAP, Active Directory, OpenID, OAuth, Kerberos/GSSAPI, X509 https client certificates. With Gerrit 3.0 all configurations will be stored as git repositories, no database required to run. Gerrit has a pull-request feature implemented in its core but lacks a GUI for it.
  • Phabricator, a spin off from Facebook. As Facebook primarily uses Mercurial, the git support is not as prominent.
  • Trac, supporting git, Mercurial, and Subversion with a modified BSD license.
  • Rhodecode Community Edition (CE), supporting git, Mercurial and Subversion with a AGPLv3 license.
  • Kallithea, supporting both git and Mercurial, developed in Python with GPL license.
  • Some of the other FLOSS full solutions for self-hosting are Gogs and Gitea, both developed in Go language with MIT license.

As service:

Best known are probably GitHub and Bitbucket offerings, but many others are available, like GitLab, GerritForge, etc.

The above is a brief about Git. Watch this space for more updates on the latest trends in Technology.

Leave a Reply

Your email address will not be published. Required fields are marked *