Git : Home | Documentation | FAQ | Wiki | Download Site | Git's Gitweb

Git – Fast Version Control System

This is the old unmaintained Git homepage.
Please follow to git-scm.com for up-to-date information!

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:
tar.bz2 (sign) tar.gz (sign)
Release notes More versions Browse history/code


About Git

Git Crash Courses
Git for everyone
Maintaining external patches
Git for SVN users

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.


Documentation

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!


Download

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.

Git by Git

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.

Binaries

For people who prefer precompiled packages, these are available:

RPMs http://kernel.org/pub/software/scm/git/RPMS/
Debs Stable http://www.backports.org/debian/pool/main/g/git-core/
Testing http://packages.debian.org/testing/devel/git-core
Unstable http://packages.debian.org/unstable/devel/git-core
Win Cygwin http://www.cygwin.com/setup.exe
msysGit http://code.google.com/p/msysgit/downloads/list
OS X
Stable http://code.google.com/p/git-osx-installer/downloads/list?can=3
Solaris
v8–10 http://sunfreeware.com/

Development snapshots

Daily snapshots of the main Git development branch are available at http://www.codemonkey.org.uk/projects/git-snapshots/git/ (thanks to Dave Jones).


Related Tools

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

qgit
qgit is a QT GUI for browsing history of Git repositories, similar to gitk but with more features.
Tig
tig is a text-mode interface for Git. It acts as a repository browser that can also act as a pager for various Git commands and manage your index (on diff chunk level).

Tools Shipped with Git

gitk
gitk is the original TCL/TK GUI for browsing history of Git repositories.
Git-gui
git-gui is a simple Tk based graphical interface for common Git operations.
gitweb
gitweb provides a full-fledged web interface for Git repositories.

Version Control Interface layers

StGIT
Stacked Git provides a Quilt-like patch management functionality in the Git environment. You can easily manage your patches in the scope of Git until they get merged upstream.
Guilt
Guilt is another patch management tool, closer to the spirit of Quilt than StGIT.
Cogito
Cogito was a popular version control system on top of Git, aiming at seamless user interface and ease of use. It provided much better user interface in the past but later improvements of Git made it mostly obsolete and it is not maintained anymore. Please migrate to Git itself.

Public Hosting

Several public Git hosting sites are available and open for anyone to host their pet projects:

repo.or.cz
repo.or.cz is the oldest hosting site, accomodating many hundreds of projects, with open-sourced infrastructure and aimed at open source software. It provides full push features as well as simple mirroring mode and gitweb interface with various enhancements.
GitHub
GitHub provides both free hosting for smaller projects and paid options for private hosting and large-sized projects. It uses a custom web interface including a wiki hosting and puts emphasis on social networking of project developers.
Gitorious
Gitorious is another free hosting site with a custom web interface, supporting multiple repositories per project, local installations and with open source code.

more sites


Community and Development

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.