|
|
Git is an open source version control system designed to handle very large projects with speed and efficiency, but just as well suited for small personal repositories; it is especially popular in the open source community, serving as a development platform for projects like the Linux Kernel, Ruby on Rails, WINE or X.org.
Git falls in the category of distributed source code management tools, similar to e.g. Mercurial or Bazaar. Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server. Still, Git stays extremely fast and space efficient.
Git is an Open Source project covered by the GNU General Public License v2. It was originally written by Linus Torvalds and is currently maintained by Junio C Hamano.
| Download GIT source package [2009-06-22] | ||||
| The latest stable Git release is v1.6.3.3: | ||||
| ||||
| Release notes | More versions | Browse history/code | ||
Git is distributed version control system focused on speed, effectivity and real-world usability on large projects. Its highlights include:
Besides providing a version control system, the Git project provides a generic low-level toolkit for tree history storage and directory content management. Traditionally, the toolkit is called the plumbing. Aside the user interface coming with Git itself, several other projects (so-called porcelains) offer compatible version control interfaces - see the related tools list.
You can find all the documentation bundled with the Git source code
in the Documentation/ subdirectory
(the web version corresponds to the latest Git development version).
See the tutorial to get started, then see Everyday Git for a useful minimum set of commands. Especially users migrating from other systems might appreciate the Crash Courses. See Git User's Manual for a more in-depth introduction. You can find links to more useful documentation at the GitDocumentation wiki page.
For a large and continuously growing resource of information about Git, you can refer to the Git Wiki - you are welcome to contribute!
The general download location for Git releases is http://www.kernel.org/pub/software/scm/git/. You can also use one of many kernel.org mirrors.
If you already have Git installed, you can get the latest development version via Git itself:
git clone git://git.kernel.org/pub/scm/git/git.git
If you have problems connecting (Git uses port 9418), you can try to access the repository over the HTTP protocol:
git clone http://www.kernel.org/pub/scm/git/git.git
(this method is considerably slower but works even behind firewalls and such).
You can also always browse the current contents of the git repository on web using the kernel.org gitweb interface.
For people who prefer precompiled packages, these are available:
Daily snapshots of the main Git development branch are available at http://www.codemonkey.org.uk/projects/git-snapshots/git/ (thanks to Dave Jones).
Git is a true UNIX tool in the sense that it consists of many commands that do one thing well. It has been designed from the start to be easily wrapped in other tools and frontends. Currently, there are several interfaces offering more comfortable Git usage, and also graphical interfaces for browsing the history and more.
Traditionally, the low-level part of Git is called plumbing and the interfaces and frontends are called porcelains. Git itself comes with a default porcelain bundled and that is actually what you will normally mean when you say you use Git. However, there are several alternative porcelains which might offer considerably more user friendly interface or extend Git to perform some specialized tasks.
Below, the most widely used tools are listed. Please refer to the corresponding wiki page for a full list.
User Interface Tools |
Tools Shipped with Git
|
Version Control Interface layers
|
Public HostingSeveral public Git hosting sites are available and open for anyone to host their pet projects:
|
Git was initially written by Linus Torvalds with help of a group of hackers 'round the net. It is currently maintained by Junio C Hamano.
The user discussion and development of Git and most tools related to Git takes place on the Git mailing list - everyone is welcome to post bug reports, feature requests, comments and patches to git@vger.kernel.org. To subscribe to the list, send an email with just "subscribe git" in the body to majordomo@vger.kernel.org. The mailing list archives are available at Gmane and MARC. RSS feeds of various news are also available.
You can also visit the IRC channel dedicated to Git - meet us at #git on FreeNode.
This website itself is tracked in Git as well - you can browse its development history or even clone it from http://repo.or.cz/r/git-homepage.git. The site is covered by GPLv2 and maintained by Petr Baudis who always takes patches eagerly. ;-) The web is based on a design by Jonas Fonseca for the ELinks homepage.