Getting Git: Revert the grid layout back to linear
[git-homepage.git] / index.html
blob677ec71145d4bbfb88d4620d5c4c7cf3a8d60d7d
1 <?xml version="1.0" encoding="iso-8859-1" ?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
5 <head>
6 <title>Git - Fast Version Control System</title>
7 <meta name="description" content="Home of the Git Version Control System and Friends" />
8 <meta name="author" content="Petr Baudis" />
9 <meta http-equiv="reply-to" content="pasky@suse.cz" />
10 <meta http-equiv="content-language" content="en" />
11 <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
12 <link type="text/css" rel="stylesheet" media="screen" href="stylesheets/screen.css" />
13 <link type="text/css" title="Default" rel="stylesheet" media="screen" href="stylesheets/screen-default.css" />
14 <link type="text/css" title="Gitweb Gray" rel="alternate stylesheet" media="screen" href="stylesheets/screen-gitweb-gray.css" />
15 <link type="text/css" title="Blue" rel="alternate stylesheet" media="screen" href="stylesheets/screen-blue.css" />
16 <link type="text/css" title="Green" rel="alternate stylesheet" media="screen" href="stylesheets/screen-green.css" />
17 <link rel="icon" href="favicon.png" type="image/png" />
18 </head>
20 <body>
22 <table border="1" summary="Navigation links" class="header" width="100%"><tr><td>
23 <a href="index.html" id="top"><img src="git-logo.png" width="72" height="27" alt="Git"
24 style="border-width:0px;"/></a>
25 <span class="hide">:</span>
26 <span class="menu">
27 <a href="index.html">Home</a> |
28 <a href="http://www.kernel.org/pub/software/scm/git/docs/">Documentation</a> |
29 <a href="http://git.or.cz/gitwiki/GitFaq">FAQ</a> |
30 <a href="http://git.or.cz/gitwiki">Wiki</a> |
31 <a href="http://www.kernel.org/pub/software/scm/git/">Download Site</a> |
32 <a href="http://git.kernel.org/git/?p=git/git.git;a=summary">Git's Gitweb</a>
33 </span>
34 </td></tr></table>
36 <h1>Git - Fast Version Control System</h1>
38 <p>Git is an open source version control system
39 designed to handle very large projects with speed and efficiency;
40 it is especially popular in the open source community,
41 serving as a development platform for projects like
42 the Linux Kernel, WINE or X.org.</p>
44 <p>Git falls in the category of distributed source code management tools,
45 similar to e.g. Mercurial or Bazaar.
46 Every Git working directory is a full-fledged repository with complete history
47 and full revision tracking capabilities, not dependent on network access
48 or a central server. Still, Git stays extremely fast and space efficient.</p>
50 <p>Git is an <a href="http://www.opensource.org/">Open Source</a> project covered by
51 the <a href="http://www.gnu.org/licenses/gpl2.txt">GNU General Public License v2</a>.
52 It was originally written by Linus Torvalds and is currently maintained by
53 Junio C Hamano.</p>
58 <div style="float: right"><table class="releases">
59 <tr class="odd" align="center"><td colspan="3"><b>Download GIT source package</b> <!--@DATE@-->[2008-04-08]</td></tr>
60 <tr align="center"><td colspan="3">The latest stable Git release is <b><!--@VNUM@-->v1.5.5</b>:</td></tr>
61 <tr align="center"><td colspan="3">
62 <table><tr><td>
63 <!--@TARLINK@--><a href="http://kernel.org/pub/software/scm/git/git-1.5.5.tar.bz2">tar.bz2</a>
64 <!--@TARLINK@--><a href="http://kernel.org/pub/software/scm/git/git-1.5.5.tar.bz2.sign">(sign)</a>
65 </td><td>
66 <!--@TARLINK@--><a href="http://kernel.org/pub/software/scm/git/git-1.5.5.tar.gz">tar.gz</a>
67 <!--@TARLINK@--><a href="http://kernel.org/pub/software/scm/git/git-1.5.5.tar.gz.sign">(sign)</a>
68 </td></tr></table>
69 </td></tr>
70 <tr class="odd" align="center">
71 <td><!--@NOTESLINK@--><a href="http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.5.txt">Release notes</a></td>
72 <td><a href="http://kernel.org/pub/software/scm/git/">More versions</a></td>
73 <td><a href="http://repo.or.cz/w/git.git/">Browse history/code</a></td>
74 </tr>
75 </table></div>
78 <hr />
80 <ul class="toc">
81 <li><a href="#about">About Git</a></li>
82 <li><a href="#documentation">Git Documentation</a></li>
83 <li><a href="#download">Getting Git</a></li>
84 <li><a href="#tools">Related Tools</a></li>
85 <li><a href="#community">Community and Development</a></li>
86 </ul>
89 <hr />
91 <h2 id="about">About Git</h2>
93 <div style="float: right">
94 <table class="releases">
95 <tr><th><a href="course/index.html">Git Crash Courses</a></th></tr>
96 <tr><td align="center">
97 <a href="http://www.kernel.org/pub/software/scm/git/docs/tutorial.html">Git for everyone</a>
98 <!--
99 <br /><a href="course/new.html">New to revision control?</a>
101 <br /><a href="course/stgit.html">Maintaining external patches</a>
102 <br /><a href="course/svn.html">Git for SVN users</a>
103 <!-- <br /><em>More to come soon...</em> -->
104 </td></tr>
105 </table>
106 </div>
108 <p>Git is distributed version control system focused on
109 speed, effectivity and real-world usability on large projects.
110 Its highlights include:</p>
112 <!-- Heavily inspired by Wikipedia -->
114 <ul>
116 <li>
117 <b>Distributed development.</b>
118 Like most other modern version control systems, Git gives each developer
119 a local copy of the entire development history,
120 and changes are copied from one such repository to another.
121 These changes are imported as additional development branches,
122 and can be merged in the same way as a locally developed branch.
123 Repositories can be easily accessed via the efficient Git protocol
124 (optionally wrapped in ssh for authentication and security)
125 or simply using HTTP - you can publish your repository anywhere
126 without <em>any</em> special webserver configuration required.
127 </li>
129 <li>
130 <b>Strong support for non-linear development.</b>
131 Git supports rapid and convenient branching and merging,
132 and includes powerful tools for visualizing
133 and navigating a non-linear development history.
134 </li>
136 <li>
137 <b>Efficient handling of large projects.</b>
138 Git is very fast and scales well
139 even when working with large projects and long histories.
140 It is commonly an order of magnitude faster
141 than most other version control systems,
142 and several orders of magnitude faster on some operations.
143 It also uses an extremely efficient packed format
144 for long-term revision storage
145 that currently tops any other open source version control system.
146 </li>
148 <li>
149 <b>Cryptographic authentication of history.</b>
150 The Git history is stored in such a way
151 that the name of a particular revision (a "commit" in Git terms)
152 depends upon the complete development history leading up to that commit.
153 Once it is published, it is not possible to change the old versions
154 without it being noticed. Also, tags can be cryptographically signed.
155 </li>
157 <li>
158 <b>Toolkit design.</b>
159 Following the Unix tradition,
160 Git is a collection of many small tools written in C,
161 and a number of scripts that provide convenient wrappers.
162 Git provides tools for both convenient human usage and easy
163 scripting to perform new clever operations.
164 </li>
166 </ul>
168 <p>Besides providing a version control system,
169 the Git project provides a generic low-level toolkit
170 for tree history storage and directory content management.
171 Traditionally, the toolkit is called the <em>plumbing</em>.
172 Aside the user interface coming with Git itself,
173 several other projects (so-called <em>porcelains</em>)
174 offer compatible version control interfaces - see the
175 <a href="#tools">related tools</a> list.</p>
177 <p>Some other projects have taken the concepts from the Git project
178 and are either porting an existing toolset to use the Git tools,
179 or reimplementing the concepts internally,
180 to benefit from the performance improvements.
181 This includes e.g.
182 <a href="http://wiki.darcs.net/DarcsWiki/DarcsGit">Darcs-git</a>.</p>
185 <hr />
187 <h2 id="documentation">Git Documentation</h2>
189 <p>You can find all the documentation bundled with the Git source code
190 in the <a href="http://www.kernel.org/pub/software/scm/git/docs/"><code>Documentation/</code></a> subdirectory
191 (the web version corresponds to the latest Git development version).</p>
193 <p>See <a href="http://www.kernel.org/pub/software/scm/git/docs/tutorial.html">the tutorial</a> to get started,
194 then see <a href="http://www.kernel.org/pub/software/scm/git/docs/everyday.html">Everyday Git</a> for a useful minimum set of commands.
195 Especially users migrating from other systems might appreciate the <a href="course/">Crash Courses</a>.
196 See <a href="http://www.kernel.org/pub/software/scm/git/docs/user-manual.html">Git User's Manual</a> for a more in-depth introduction.
197 You can find links to more useful documentation at the
198 <a href="http://git.or.cz/gitwiki/GitDocumentation">GitDocumentation</a> wiki page.</p>
200 <p>For a large and continuously growing resource of information
201 about Git, you can refer to the <a href="http://git.or.cz/gitwiki">Git Wiki</a>
202 - you are welcome to contribute!</p>
205 <hr />
207 <h2 id="download">Getting Git</h2>
209 <p>The general download location for Git releases is
210 <a href="http://www.kernel.org/pub/software/scm/git/">http://www.kernel.org/pub/software/scm/git/</a>.
211 You can also use one of many <a href="http://www.kernel.org/mirrors/">kernel.org mirrors</a>.</p>
213 <h3>Git by Git</h3>
215 <p>If you already have Git installed, you can get the latest
216 development version via Git itself:</p>
217 <pre>git clone git://git.kernel.org/pub/scm/git/git.git</pre>
219 <p>If you have problems connecting (Git uses port 9418),
220 you can try to access the repository over the HTTP protocol:</p>
221 <pre>git clone http://www.kernel.org/pub/scm/git/git.git</pre>
222 <p>(this method is considerably slower but works even behind
223 firewalls and such).</p>
225 <p>You can also always browse the current contents
226 of the git repository on web using the kernel.org
227 <a href="http://kernel.org/git/?p=git/git.git;a=summary">gitweb interface</a>.</p>
229 <h3>Binaries</h3>
231 <p>For people who prefer precompiled packages, these are available:</p>
233 <table class="bugmail">
235 <tr>
236 <td colspan="2">RPMs</td>
237 <td><a href="http://kernel.org/pub/software/scm/git/RPMS/">http://kernel.org/pub/software/scm/git/RPMS/</a></td>
238 </tr>
240 <tr class="odd">
241 <td rowspan="3">Debs</td>
242 <td>Stable</td>
243 <td><a href="http://www.backports.org/debian/pool/main/g/git-core/">http://www.backports.org/debian/pool/main/g/git-core/</a></td>
244 </tr>
245 <tr>
246 <td>Testing</td>
247 <td><a href="http://packages.debian.org/testing/devel/git-core">http://packages.debian.org/testing/devel/git-core</a></td>
248 </tr>
249 <tr class="odd">
250 <td>Unstable</td>
251 <td><a href="http://packages.debian.org/unstable/devel/git-core">http://packages.debian.org/unstable/devel/git-core</a></td>
252 </tr>
254 <tr>
255 <td rowspan="2">Win</td>
256 <td><a href="http://www.cygwin.com/">Cygwin</a></td>
257 <td><a href="http://www.cygwin.com/setup.exe">http://www.cygwin.com/setup.exe</a></td>
258 </tr>
259 <tr class="odd">
260 <td><a href="http://code.google.com/p/msysgit/">msysGit</a></td>
261 <td><a href="http://code.google.com/p/msysgit/downloads/list">http://code.google.com/p/msysgit/downloads/list</a></td>
262 </tr>
264 <tr class="odd">
265 <td rowspan="3">OS X</td>
266 </tr>
267 <tr>
268 <td>Stable</td>
269 <td><a href="http://code.google.com/p/git-osx-installer/downloads/list?can=3">http://code.google.com/p/git-osx-installer/downloads/list?can=3</a></td>
270 </tr>
272 </table>
274 <h3>Development snapshots</h3>
276 <p>Daily snapshots of the main Git development branch are available at
277 <a href="http://www.codemonkey.org.uk/projects/git-snapshots/git/"
278 >http://www.codemonkey.org.uk/projects/git-snapshots/git/</a>
279 (thanks to Dave Jones).</p>
283 <hr />
285 <h2 id="tools">Related Tools</h2>
287 <p>Git is a true UNIX tool in the sense that it consists of many commands
288 that do one thing well. It has been designed from the start to be easily
289 wrapped in other tools and frontends. Currently, there are several
290 interfaces offering more comfortable Git usage, and also graphical
291 interfaces for browsing the history and more.</p>
293 <p>Traditionally, the low-level part of Git is called <em>plumbing</em>
294 and the interfaces and frontends are called <em>porcelains</em>.
295 Git itself comes with a default porcelain bundled and that is actually
296 what you will normally mean when you say you use Git. However, there
297 are several alternative porcelains which might offer considerably more
298 user friendly interface or extend Git to perform some specialized tasks.</p>
300 <p>Below, the most widely used tools are listed. Please refer to
301 <a href="http://git.or.cz/gitwiki/InterfacesFrontendsAndTools">the corresponding wiki page</a>
302 for a full list.</p>
304 <table>
305 <tr valign="top">
307 <td>
308 <h3>User Interface Tools</h3>
310 <dl>
312 <dt id="qgit">qgit</dt>
313 <dd><a href="http://sourceforge.net/projects/qgit">qgit</a> is a QT
314 GUI for browsing history of Git repositories, similar to <em>gitk</em>
315 but with more features.</dd>
317 <dt id="tig">Tig</dt>
318 <dd><a href="http://jonas.nitro.dk/tig/">tig</a>
319 is a text-mode interface for Git. It acts as a repository browser
320 that can also act as a pager for various Git commands
321 and manage your index (on diff chunk level).</dd>
323 </dl>
324 </td>
326 <td>
327 <h3>Tools Shipped with Git</h3>
329 <dl>
331 <dt id="gitk">gitk</dt>
332 <dd><a href="http://git.kernel.org/?p=gitk/gitk.git;a=summary">gitk</a>
333 is the original TCL/TK GUI for browsing history of Git repositories.</dd>
335 <dt id="git-gui">Git-gui</dt>
336 <dd><a href="http://www.spearce.org/category/projects/scm/git-gui/">git-gui</a>
337 is a simple Tk based graphical interface for common Git
338 operations.</dd>
340 <dt id="gitweb">gitweb</dt>
341 <dd>gitweb provides a full-fledged <a href="http://git.kernel.org/">web interface</a>
342 for Git repositories.</dd>
344 </dl>
345 </td>
346 </tr>
348 <tr valign="top">
349 <td>
350 <h3>Version Control Interface layers</h3>
352 <dl>
354 <dt id="stgit">StGIT</dt>
355 <dd><a href="http://www.procode.org/stgit/">Stacked Git</a> provides
356 a <em>Quilt</em>-like patch management functionality in the Git environment.
357 You can easily manage your patches in the scope of Git until they get
358 merged upstream.</dd>
360 <dt id="guilt">Guilt</dt>
361 <dd><a href="http://www.kernel.org/pub/linux/kernel/people/jsipek/guilt/">Guilt</a>
362 is another patch management tool, closer to the spirit of <em>Quilt</em>
363 than StGIT.</dd>
365 <dt id="cogito">Cogito</dt>
366 <dd><a href="http://git.or.cz/cogito/">Cogito</a>
367 was a popular version control system on top of Git,
368 aiming at seamless user interface and ease of use.
369 It provided much better user interface in the past
370 but later improvements of Git made it mostly obsolete
371 and it is not maintained anymore.
372 Please migrate to Git itself.</dd>
374 </dl>
375 </td>
377 <td>
378 <h3>Public Hosting</h3>
380 <p>Several public Git hosting sites are available and open for anyone
381 to host their pet projects:</p>
383 <dl>
384 <dt id="repo">repo.or.cz</dt>
385 <dd><a href="http://repo.or.cz/">repo.or.cz</a> is the oldest hosting site,
386 accomodating many hundreds of projects, with open-sourced infrastructure
387 and aimed at open source software. It provides full push features as well
388 as simple mirroring mode and gitweb interface with various enhancements.</dd>
390 <dt id="github">GitHub</dt>
391 <dd><a href="http://github.com/">GitHub</a> provides both free hosting for
392 smaller projects and paid options for private hosting and large-sized projects.
393 It uses a custom web interface including a wiki hosting and puts emphasis
394 on social networking of project developers.</dd>
396 <dt id="gitorious">Gitorious</dt>
397 <dd><a href="http://gitorious.org/">Gitorious</a> is another free hosting
398 site with a custom web interface, supporting multiple repositories per project,
399 local installations and with open source code.</dd>
401 </dl>
402 </td>
403 </tr>
405 </table>
408 <hr />
410 <h2 id="community">Community and Development</h2>
412 <p>Git was initially written by Linus Torvalds
413 with help of a group of hackers 'round the net.
414 It is currently maintained by
415 Junio C Hamano.</p>
417 <p>The user discussion and development of Git and most tools related to Git
418 takes place on the Git mailing list - everyone is welcome to post
419 bug reports, feature requests, comments and
420 <a href="http://repo.or.cz/w/git.git?a=blob_plain;f=Documentation/SubmittingPatches;hb=HEAD">patches</a>
421 to <a href="mailto:git@vger.kernel.org">git@vger.kernel.org</a>.
422 To <a href="mailto:majordomo@vger.kernel.org?body=subscribe%20git">subscribe</a>
423 to the list, send an email with just "subscribe git" in the body to
424 majordomo@vger.kernel.org.
425 The mailing list archives are available at
426 <a href="http://dir.gmane.org/gmane.comp.version-control.git">Gmane</a>
427 and <a href="http://marc.info/?l=git">MARC</a>.</p>
429 <p>You can also visit the IRC channel dedicated to Git -
430 meet us at <a href="irc://irc.freenode.net/#git">#git on FreeNode</a>.</p>
432 <p>This website itself is tracked in Git as well -
433 you can
434 <a href="http://repo.or.cz/w/git-homepage.git">browse its development history</a>
435 or even clone it from http://repo.or.cz/r/git-homepage.git.
436 The site is covered by GPLv2
437 and maintained by <a href="mailto:pasky@suse.cz">Petr Baudis</a>
438 who always takes patches eagerly. ;-)
439 The web is based on a design by <a href="mailto:fonseca@diku.dk">Jonas Fonseca</a>
440 for the <a href="http://elinks.cz">ELinks homepage</a>.</p>
443 <hr />
445 <div class="footer">
446 <span class="menu">
447 This page is maintained by Petr Baudis. Please email me
448 at <a href="mailto:pasky@suse.cz">pasky@suse.cz</a>
449 with patches, suggestions and comments.
450 </span>
451 </div>
453 </body>
454 </html>