| CARVIEW |
|
|
Git – Fast Version Control System
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 | ||
About Git
Git is distributed version control system focused on speed, effectivity and real-world usability on large projects. Its highlights include:
- Distributed development. Like most other modern version control systems, 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 accessed via the efficient Git protocol (optionally wrapped in ssh for authentication and security) or simply using HTTP - you can publish your repository anywhere without any special webserver configuration required.
- Strong support for non-linear development. Git supports rapid and convenient branching and merging, and includes powerful tools for visualizing and navigating a non-linear development history.
- Efficient handling of large projects. Git is very fast and scales well even when working with large projects and long histories. It is commonly an order of magnitude faster than most other version control systems, and several orders of magnitude faster on some operations. It also uses an extremely efficient packed format for long-term revision storage that currently tops any other open source version control system.
- 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. Also, tags can be cryptographically signed.
- Toolkit design. Following the Unix tradition, Git is a collection of many small tools written in C, and a number of scripts that provide convenient wrappers. Git provides tools for both convenient human usage and easy scripting to perform new clever operations.
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 https://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 https://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:
Development snapshots
Daily snapshots of the main Git development branch are available at https://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 |
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:
|
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 https://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.