Git (software) Article Index for
Git
 

Information About

Git (software)





Software Information

  Name Git
  Author Linus Torvalds
  Developer Junio Hamano , Linus Torvalds
  Latest Release Version 153
  Latest Release Date September 1 2007 {{cite mailing list
  author Junio C Hamano
  url http://articlegmaneorg/gmanecompversion-controlgit/57295
  title &#91ANNOUNCE&#93 GIT 153
  mailinglist git


  Operating System POSIX
  Genre Revision Control System
  License GNU General Public License Version 2
  Website http://gitorcz/


Git is a distributed -like File Manager created by Tudor Hulubei and Andrei Pitis .

Git's design was inspired by or StGIT .2 However, the core Git project has since become a complete revision control system that is usable directly.3 Several high-profile software projects now use Git for revision control, most notably the Linux Kernel .http://git.or.cz/gitwiki/GitProjects

Git's current Software Maintenance is overseen by Junio Hamano . Released under the GNU General Public License , version 2, Git is Free Software .


NAME

Linus Torvalds has Quip ped about the name " Git ", which is a British slang for a stupid or unpleasant person: The official Git wiki also gives a number of alternative explanations for the name. GitFaq: Why the 'git' name?


CHARACTERISTICS


Git's design is a synthesis of Torvalds's experience maintaining a large distributed development project, his intimate knowledge of file system performance, and an urgent need to produce a working system in short order. (See the History Section for details.) These influences led to the following implementation choices:
  • Strong support for non-linear development. Git supports rapid and convenient branching and merging, and includes Specific Tools for visualizing and navigating a non-linear development history. A core assumption in Git is that a change will be merged more often than it is written, as it is passed around various reviewers. Torvalds himself does the most merging and least direct editing, so he has made sure that it works well.

  • Distributed development. Like Darcs , BitKeeper , Mercurial , SVK , and Monotone , Git gives each developer a local copy of the entire development history, and changes are copied from one such repository to another. These changes are imported as additional development branches, and can be merged in the same way as a locally developed branch.

  • Repositories can be easily published via HTTP , FTP , Ssh , Rsync , or a special git protocol. Git also has a CVS server emulation, which allows one to use existing CVS clients and IDE plugins to access Git repositories.

  • Efficient handling of large projects. Git is very fast,4 and scales well. It is commonly an Order Of Magnitude faster than other revision control systems, and two orders of magnitude faster on some operations.5, benchmarking "git diff" against "bzr diff", and finging the former 100x faster in some cases.6, observing that "git log" is 100x faster than "svn log" because the latter has to contact a remote server.

  • Cryptographic authentication of history. The Git history is stored in such a way that the name of a particular revision (a "commit" in Git terms) depends upon the complete development history leading up to that commit. Once it is published, it is not possible to change the old versions without it being noticed. ( Monotone also has this property.)

    • Pluggable merge strategies. As part of its toolkit design, git has a well-defined model of an incomplete merge, and it has multiple algorithms for completing it, culminating in telling the user that it is unable to complete the merge automatically and manual editing is required. It is thus easy to experiment with new merge algorithms.