Use <em> for other software's names
[git-homepage.git] / index.html
blobbfa2633dfc58737b87ebaf917815cbafa9b3c24a
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&ensp;&ndash;&ensp;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 but just as well suited for small personal repositories;
41 it is especially popular in the open source community,
42 serving as a development platform for projects like
43 the <em>Linux Kernel</em>, <em>WINE</em> or <em>X.org</em>.</p>
45 <p>Git falls in the category of distributed source code management tools,
46 similar to e.g. <em>Mercurial</em> or <em>Bazaar</em>.
47 Every Git working directory is a full-fledged repository with complete history
48 and full revision tracking capabilities, not dependent on network access
49 or a central server. Still, Git stays extremely fast and space efficient.</p>
51 <p>Git is an <a href="http://www.opensource.org/">Open Source</a> project covered by
52 the <a href="http://www.gnu.org/licenses/gpl2.txt">GNU General Public License v2</a>.
53 It was originally written by Linus Torvalds and is currently maintained by
54 Junio C Hamano.</p>
59 <div style="float: right"><table class="releases">
60 <tr class="odd" align="center"><td colspan="3"><b>Download GIT source package</b> <!--@DATE@-->[2008-04-08]</td></tr>
61 <tr align="center"><td colspan="3">The latest stable Git release is <b><!--@VNUM@-->v1.5.5</b>:</td></tr>
62 <tr align="center"><td colspan="3">
63 <table><tr><td>
64 <!--@TARLINK@--><a href="http://kernel.org/pub/software/scm/git/git-1.5.5.tar.bz2">tar.bz2</a>
65 <!--@TARLINK@--><a href="http://kernel.org/pub/software/scm/git/git-1.5.5.tar.bz2.sign">(sign)</a>
66 </td><td>
67 <!--@TARLINK@--><a href="http://kernel.org/pub/software/scm/git/git-1.5.5.tar.gz">tar.gz</a>
68 <!--@TARLINK@--><a href="http://kernel.org/pub/software/scm/git/git-1.5.5.tar.gz.sign">(sign)</a>
69 </td></tr></table>
70 </td></tr>
71 <tr class="odd" align="center">
72 <td><!--@NOTESLINK@--><a href="http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.5.txt">Release notes</a></td>
73 <td><a href="http://kernel.org/pub/software/scm/git/">More versions</a></td>
74 <td><a href="http://repo.or.cz/w/git.git/">Browse history/code</a></td>
75 </tr>
76 </table></div>
79 <hr />
81 <ul class="toc">
82 <li><a href="#about">About Git</a></li>
83 <li><a href="#documentation">Git Documentation</a></li>
84 <li><a href="#download">Getting Git</a></li>
85 <li><a href="#tools">Related Tools</a></li>
86 <li><a href="#community">Community and Development</a></li>
87 </ul>
90 <hr />
92 <h2 id="about">About Git</h2>
94 <div style="float: right">
95 <table class="releases">
96 <tr><th><a href="course/index.html">Git Crash Courses</a></th></tr>
97 <tr><td align="center">
98 <a href="http://www.kernel.org/pub/software/scm/git/docs/tutorial.html">Git for everyone</a>
99 <!--
100 <br /><a href="course/new.html">New to revision control?</a>
102 <br /><a href="course/stgit.html">Maintaining external patches</a>
103 <br /><a href="course/svn.html">Git for SVN users</a>
104 <!-- <br /><em>More to come soon...</em> -->
105 </td></tr>
106 </table>
107 </div>
109 <p>Git is distributed version control system focused on
110 speed, effectivity and real-world usability on large projects.
111 Its highlights include:</p>
113 <!-- Heavily inspired by Wikipedia -->
115 <ul>
117 <li>
118 <b>Distributed development.</b>
119 Like most other modern version control systems, Git gives each developer
120 a local copy of the entire development history,
121 and changes are copied from one such repository to another.
122 These changes are imported as additional development branches,
123 and can be merged in the same way as a locally developed branch.
124 Repositories can be easily accessed via the efficient Git protocol
125 (optionally wrapped in ssh for authentication and security)
126 or simply using HTTP - you can publish your repository anywhere
127 without <em>any</em> special webserver configuration required.
128 </li>
130 <li>
131 <b>Strong support for non-linear development.</b>
132 Git supports rapid and convenient branching and merging,
133 and includes powerful tools for visualizing
134 and navigating a non-linear development history.
135 </li>
137 <li>
138 <b>Efficient handling of large projects.</b>
139 Git is very fast and scales well
140 even when working with large projects and long histories.
141 It is commonly an order of magnitude faster
142 than most other version control systems,
143 and several orders of magnitude faster on some operations.
144 It also uses an extremely efficient packed format
145 for long-term revision storage
146 that currently tops any other open source version control system.
147 </li>
149 <li>
150 <b>Cryptographic authentication of history.</b>
151 The Git history is stored in such a way
152 that the name of a particular revision (a "commit" in Git terms)
153 depends upon the complete development history leading up to that commit.
154 Once it is published, it is not possible to change the old versions
155 without it being noticed. Also, tags can be cryptographically signed.
156 </li>
158 <li>
159 <b>Toolkit design.</b>
160 Following the Unix tradition,
161 Git is a collection of many small tools written in C,
162 and a number of scripts that provide convenient wrappers.
163 Git provides tools for both convenient human usage and easy
164 scripting to perform new clever operations.
165 </li>
167 </ul>
169 <p>Besides providing a version control system,
170 the Git project provides a generic low-level toolkit
171 for tree history storage and directory content management.
172 Traditionally, the toolkit is called the <em>plumbing</em>.
173 Aside the user interface coming with Git itself,
174 several other projects (so-called <em>porcelains</em>)
175 offer compatible version control interfaces - see the
176 <a href="#tools">related tools</a> list.</p>
179 <hr />
181 <h2 id="documentation">Git Documentation</h2>
183 <p>You can find all the documentation bundled with the Git source code
184 in the <a href="http://www.kernel.org/pub/software/scm/git/docs/"><code>Documentation/</code></a> subdirectory
185 (the web version corresponds to the latest Git development version).</p>
187 <p>See <a href="http://www.kernel.org/pub/software/scm/git/docs/tutorial.html">the tutorial</a> to get started,
188 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.
189 Especially users migrating from other systems might appreciate the <a href="course/">Crash Courses</a>.
190 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.
191 You can find links to more useful documentation at the
192 <a href="http://git.or.cz/gitwiki/GitDocumentation">GitDocumentation</a> wiki page.</p>
194 <p>For a large and continuously growing resource of information
195 about Git, you can refer to the <a href="http://git.or.cz/gitwiki">Git Wiki</a>
196 - you are welcome to contribute!</p>
199 <hr />
201 <h2 id="download">Getting Git</h2>
203 <p>The general download location for Git releases is
204 <a href="http://www.kernel.org/pub/software/scm/git/">http://www.kernel.org/pub/software/scm/git/</a>.
205 You can also use one of many <a href="http://www.kernel.org/mirrors/">kernel.org mirrors</a>.</p>
207 <h3>Git by Git</h3>
209 <p>If you already have Git installed, you can get the latest
210 development version via Git itself:</p>
211 <pre>git clone git://git.kernel.org/pub/scm/git/git.git</pre>
213 <p>If you have problems connecting (Git uses port 9418),
214 you can try to access the repository over the HTTP protocol:</p>
215 <pre>git clone http://www.kernel.org/pub/scm/git/git.git</pre>
216 <p>(this method is considerably slower but works even behind
217 firewalls and such).</p>
219 <p>You can also always browse the current contents
220 of the git repository on web using the kernel.org
221 <a href="http://kernel.org/git/?p=git/git.git;a=summary">gitweb interface</a>.</p>
223 <h3>Binaries</h3>
225 <p>For people who prefer precompiled packages, these are available:</p>
227 <table class="bugmail">
229 <tr>
230 <td colspan="2">RPMs</td>
231 <td><a href="http://kernel.org/pub/software/scm/git/RPMS/">http://kernel.org/pub/software/scm/git/RPMS/</a></td>
232 </tr>
234 <tr class="odd">
235 <td rowspan="3">Debs</td>
236 <td>Stable</td>
237 <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>
238 </tr>
239 <tr>
240 <td>Testing</td>
241 <td><a href="http://packages.debian.org/testing/devel/git-core">http://packages.debian.org/testing/devel/git-core</a></td>
242 </tr>
243 <tr class="odd">
244 <td>Unstable</td>
245 <td><a href="http://packages.debian.org/unstable/devel/git-core">http://packages.debian.org/unstable/devel/git-core</a></td>
246 </tr>
248 <tr>
249 <td rowspan="2">Win</td>
250 <td><a href="http://www.cygwin.com/">Cygwin</a></td>
251 <td><a href="http://www.cygwin.com/setup.exe">http://www.cygwin.com/setup.exe</a></td>
252 </tr>
253 <tr class="odd">
254 <td><a href="http://code.google.com/p/msysgit/">msysGit</a></td>
255 <td><a href="http://code.google.com/p/msysgit/downloads/list">http://code.google.com/p/msysgit/downloads/list</a></td>
256 </tr>
258 <tr class="odd">
259 <td rowspan="3">OS X</td>
260 </tr>
261 <tr>
262 <td>Stable</td>
263 <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>
264 </tr>
266 </table>
268 <h3>Development snapshots</h3>
270 <p>Daily snapshots of the main Git development branch are available at
271 <a href="http://www.codemonkey.org.uk/projects/git-snapshots/git/"
272 >http://www.codemonkey.org.uk/projects/git-snapshots/git/</a>
273 (thanks to Dave Jones).</p>
277 <hr />
279 <h2 id="tools">Related Tools</h2>
281 <p>Git is a true UNIX tool in the sense that it consists of many commands
282 that do one thing well. It has been designed from the start to be easily
283 wrapped in other tools and frontends. Currently, there are several
284 interfaces offering more comfortable Git usage, and also graphical
285 interfaces for browsing the history and more.</p>
287 <p>Traditionally, the low-level part of Git is called <em>plumbing</em>
288 and the interfaces and frontends are called <em>porcelains</em>.
289 Git itself comes with a default porcelain bundled and that is actually
290 what you will normally mean when you say you use Git. However, there
291 are several alternative porcelains which might offer considerably more
292 user friendly interface or extend Git to perform some specialized tasks.</p>
294 <p>Below, the most widely used tools are listed. Please refer to
295 <a href="http://git.or.cz/gitwiki/InterfacesFrontendsAndTools">the corresponding wiki page</a>
296 for a full list.</p>
298 <table>
299 <tr valign="top">
301 <td>
302 <h3>User Interface Tools</h3>
304 <dl>
306 <dt id="qgit">qgit</dt>
307 <dd><a href="http://sourceforge.net/projects/qgit">qgit</a> is a QT
308 GUI for browsing history of Git repositories, similar to <em>gitk</em>
309 but with more features.</dd>
311 <dt id="tig">Tig</dt>
312 <dd><a href="http://jonas.nitro.dk/tig/">tig</a>
313 is a text-mode interface for Git. It acts as a repository browser
314 that can also act as a pager for various Git commands
315 and manage your index (on diff chunk level).</dd>
317 </dl>
318 </td>
320 <td>
321 <h3>Tools Shipped with Git</h3>
323 <dl>
325 <dt id="gitk">gitk</dt>
326 <dd><a href="http://git.kernel.org/?p=gitk/gitk.git;a=summary">gitk</a>
327 is the original TCL/TK GUI for browsing history of Git repositories.</dd>
329 <dt id="git-gui">Git-gui</dt>
330 <dd><a href="http://www.spearce.org/category/projects/scm/git-gui/">git-gui</a>
331 is a simple Tk based graphical interface for common Git
332 operations.</dd>
334 <dt id="gitweb">gitweb</dt>
335 <dd>gitweb provides a full-fledged <a href="http://git.kernel.org/">web interface</a>
336 for Git repositories.</dd>
338 </dl>
339 </td>
340 </tr>
342 <tr valign="top">
343 <td>
344 <h3>Version Control Interface layers</h3>
346 <dl>
348 <dt id="stgit">StGIT</dt>
349 <dd><a href="http://www.procode.org/stgit/">Stacked Git</a> provides
350 a <em>Quilt</em>-like patch management functionality in the Git environment.
351 You can easily manage your patches in the scope of Git until they get
352 merged upstream.</dd>
354 <dt id="guilt">Guilt</dt>
355 <dd><a href="http://www.kernel.org/pub/linux/kernel/people/jsipek/guilt/">Guilt</a>
356 is another patch management tool, closer to the spirit of <em>Quilt</em>
357 than StGIT.</dd>
359 <dt id="cogito">Cogito</dt>
360 <dd><a href="http://git.or.cz/cogito/">Cogito</a>
361 was a popular version control system on top of Git,
362 aiming at seamless user interface and ease of use.
363 It provided much better user interface in the past
364 but later improvements of Git made it mostly obsolete
365 and it is not maintained anymore.
366 Please migrate to Git itself.</dd>
368 </dl>
369 </td>
371 <td>
372 <h3>Public Hosting</h3>
374 <p>Several public Git hosting sites are available and open for anyone
375 to host their pet projects:</p>
377 <dl>
378 <dt id="repo">repo.or.cz</dt>
379 <dd><a href="http://repo.or.cz/">repo.or.cz</a> is the oldest hosting site,
380 accomodating many hundreds of projects, with open-sourced infrastructure
381 and aimed at open source software. It provides full push features as well
382 as simple mirroring mode and gitweb interface with various enhancements.</dd>
384 <dt id="github">GitHub</dt>
385 <dd><a href="http://github.com/">GitHub</a> provides both free hosting for
386 smaller projects and paid options for private hosting and large-sized projects.
387 It uses a custom web interface including a wiki hosting and puts emphasis
388 on social networking of project developers.</dd>
390 <dt id="gitorious">Gitorious</dt>
391 <dd><a href="http://gitorious.org/">Gitorious</a> is another free hosting
392 site with a custom web interface, supporting multiple repositories per project,
393 local installations and with open source code.</dd>
395 </dl>
396 </td>
397 </tr>
399 </table>
402 <hr />
404 <h2 id="community">Community and Development</h2>
406 <p>Git was initially written by Linus Torvalds
407 with help of a group of hackers 'round the net.
408 It is currently maintained by
409 Junio C Hamano.</p>
411 <p>The user discussion and development of Git and most tools related to Git
412 takes place on the Git mailing list - everyone is welcome to post
413 bug reports, feature requests, comments and
414 <a href="http://repo.or.cz/w/git.git?a=blob_plain;f=Documentation/SubmittingPatches;hb=HEAD">patches</a>
415 to <a href="mailto:git@vger.kernel.org">git@vger.kernel.org</a>.
416 To <a href="mailto:majordomo@vger.kernel.org?body=subscribe%20git">subscribe</a>
417 to the list, send an email with just "subscribe git" in the body to
418 majordomo@vger.kernel.org.
419 The mailing list archives are available at
420 <a href="http://dir.gmane.org/gmane.comp.version-control.git">Gmane</a>
421 and <a href="http://marc.info/?l=git">MARC</a>.</p>
423 <p>You can also visit the IRC channel dedicated to Git -
424 meet us at <a href="irc://irc.freenode.net/#git">#git on FreeNode</a>.</p>
426 <p>This website itself is tracked in Git as well -
427 you can
428 <a href="http://repo.or.cz/w/git-homepage.git">browse its development history</a>
429 or even clone it from http://repo.or.cz/r/git-homepage.git.
430 The site is covered by GPLv2
431 and maintained by <a href="mailto:pasky@suse.cz">Petr Baudis</a>
432 who always takes patches eagerly. ;-)
433 The web is based on a design by <a href="mailto:fonseca@diku.dk">Jonas Fonseca</a>
434 for the <a href="http://elinks.cz">ELinks homepage</a>.</p>
437 <hr />
439 <div class="footer">
440 <span class="menu">
441 This page is maintained by Petr Baudis. Please email me
442 at <a href="mailto:pasky@suse.cz">pasky@suse.cz</a>
443 with patches, suggestions and comments.
444 </span>
445 </div>
447 </body>
448 </html>