Automated update: [1970-01-01] 1.5.1.3 ->
[git-homepage.git] / index.html
blobcf4a4a6129b9a9b42ed6d328518bbdce0c42abc5
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://www.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 popular version control system
39 designed to handle very large projects with speed and efficiency;
40 it is used mainly for various open source projects,
41 most notably the Linux kernel.</p>
43 <p>Git falls in the category of distributed source code management tools,
44 similar to e.g. GNU Arch or Monotone (or BitKeeper in the proprietary world).
45 Every Git working directory is a full-fledged repository with full revision
46 tracking capabilities, not dependent on network access or a central server.</p>
48 <p>Git is an <a href="http://www.opensource.org/">Open Source</a> project covered by
49 the <a href="http://www.gnu.org/licenses/gpl.txt">GNU General Public License</a>.
50 It was originally written by Linus Torvalds and is currently maintained by
51 Junio C Hamano.</p>
53 <div style="float: right"><table class="releases">
54 <tr class="odd" align="center"><td colspan="2"><!--@DATE@-->[1970-01-01]</td></tr>
55 <tr align="center"><td colspan="2">The latest stable Git release is <b><!--@VNUM@--></b>:</td></tr>
56 <tr align="center"><td>
57 <!--@TARLINK@--><a href="http://kernel.org/pub/software/scm/git/git-.tar.bz2">tar.bz2</a>
58 <!--@TARLINK@--><a href="http://kernel.org/pub/software/scm/git/git-.tar.bz2.sign">(sign)</a>
59 </td><td>
60 <!--@TARLINK@--><a href="http://kernel.org/pub/software/scm/git/git-.tar.gz">tar.gz</a>
61 <!--@TARLINK@--><a href="http://kernel.org/pub/software/scm/git/git-.tar.gz.sign">(sign)</a>
62 </td></tr>
63 <tr class="odd" align="center">
64 <td><a href="http://kernel.org/pub/software/scm/git/">More versions</a></td>
65 <td><a href="http://repo.or.cz/w/git.git/">Browse history/code</a></td>
66 </tr>
67 </table></div>
70 <hr />
72 <ul>
73 <li><a href="#about">About Git</a></li>
74 <li><a href="#documentation">Git Documentation</a></li>
75 <li><a href="#download">Getting Git</a></li>
76 <li><a href="#tools">Related Tools</a></li>
77 <li><a href="#community">Community and Development</a></li>
78 </ul>
81 <hr />
83 <h2 id="about">About Git</h2>
85 <div style="float: right"><table class="releases">
86 <tr><th><a href="course/index.html">Git Crash Courses</a></th></tr>
87 <tr><td align="center">
88 <a href="http://www.kernel.org/pub/software/scm/git/docs/tutorial.html">Git for everyone</a>
89 <!--
90 <br /><a href="course/new.html">New to revision control?</a>
91 -->
92 <br /><a href="course/stgit.html">Maintaining external patches</a>
93 <br /><a href="course/cvs.html">Cogito for CVS users</a>
94 <br /><a href="course/svn.html">Cogito for SVN users</a>
95 <br /><em>More to come soon...</em>
96 </tr></td>
97 </table></div>
99 <p>Git is distributed version control system focused on
100 speed, effectivity and real-world usability on large projects.
101 Its highlights include:</p>
103 <!-- Heavily inspired by Wikipedia -->
105 <ul>
107 <li>
108 <b>Strong support for non-linear development.</b>
109 Git supports rapid and convenient branching and merging,
110 and includes powerful tools for visualizing
111 and navigating a non-linear development history.
112 </li>
114 <li>
115 <b>Distributed development.</b>
116 Like BitKeeper and SVK, Git gives each developer
117 a local copy of the entire development history,
118 and changes are copied from one such repository to another.
119 These changes are imported as additional development branches,
120 and can be merged in the same way as a locally developed branch.
121 Repositories can be easily accessed via the efficient Git protocol
122 (optionally wrapped in ssh) or simply using HTTP - you can publish
123 your repository anywhere without <em>any</em> special webserver
124 configuration required.
125 </li>
127 <li>
128 <b>Efficient handling of large projects.</b>
129 Git is very fast and scales well
130 even when working with large projects and long histories.
131 It is commonly an order of magnitude faster
132 than most other revision control systems,
133 and several orders of magnitude faster on some operations.
134 It also uses an extremely efficient packed format
135 for long-term revision storage
136 that currently tops any other open source version control system.
137 </li>
139 <li>
140 <b>Cryptographic authentication of history.</b>
141 The Git history is stored in such a way
142 that the name of a particular revision (a "commit" in Git terms)
143 depends upon the complete development history leading up to that commit.
144 Once it is published, it is not possible to change the old versions
145 without it being noticed. Also, tags can be cryptographically signed.
146 </li>
148 <li>
149 <b>Toolkit design.</b>
150 Following the Unix tradition,
151 Git is a collection of many small tools written in C,
152 and a number of scripts that provide convenient wrappers.
153 It is easy to chain the components together to do other clever things.
154 </li>
156 </ul>
158 <p>Besides providing a version control system,
159 the Git project provides a generic low-level toolkit
160 for tree history storage and directory content management.
161 Traditionally, the toolkit is called the <em>plumbing</em>.
162 Several other projects (so-called <em>porcelains</em>)
163 offer compatible version control interfaces - see the
164 <a href="#tools">related tools</a> list.</p>
166 <p>Some other projects have taken the concepts from the Git project
167 and are either porting an existing toolset to use the Git tools,
168 or reimplementing the concepts internally,
169 to benefit from the performance improvements.
170 This includes e.g.
171 <a href="http://darcs.net/DarcsWiki/DarcsGit">Darcs-git</a>.</li>
174 <hr />
176 <h2 id="documentation">Git Documentation</h2>
178 <p>You can find all the documentation bundled with the Git source code
179 in the <code>Documentation/</code> subdirectory. In addition, you can
180 also <a href="http://www.kernel.org/pub/software/scm/git/docs/">read the web version</a>
181 (corresponding to the latest Git development version).</p>
183 <p>For a quick start, the
184 <a href="http://www.kernel.org/pub/software/scm/git/docs/tutorial.html">tutorial</a>
185 covers the basics. See the
186 <a href="http://www.kernel.org/pub/software/scm/git/docs/everyday.html">Everyday Git</a>
187 handbook for a useful minimum set of commands
188 depending on your style of Git usage.
189 Additionally, the
190 <a href="http://linux.yyz.us/git-howto.html">Kernel Hacker's Git Tutorial</a>
191 by Jeff Garzik may be useful.</p>
193 <p>For a large and continuously growing resource of information
194 about Git, you can refer to the <a href="http://git.or.cz/gitwiki">Git Wiki</a>
195 - you are welcome to contribute!</p>
198 <hr />
200 <h2 id="download">Getting Git</h2>
202 <p>The general download location for Git releases is
203 <a href="http://www.kernel.org/pub/software/scm/git/">http://www.kernel.org/pub/software/scm/git/</a>.
204 You can also use one of many <a href="http://www.kernel.org/mirrors/">kernel.org mirrors</a>.</p>
206 <h3>Binaries</h3>
208 <p>For people who prefer precompiled packages, these are available:</p>
210 <table class="bugmail">
212 <tr>
213 <td colspan="2">RPMs</td>
214 <td><a href="http://kernel.org/pub/software/scm/git/RPMS/">http://kernel.org/pub/software/scm/git/RPMS/</a></td>
215 </tr>
217 <tr class="odd">
218 <td rowspan="3">Debs</td>
219 <td>Stable</td>
220 <td><a href="http://www.backports.org/debian/pool/main/g/git-core/">http://www.backports.org/debian/pool/main/g/git-core/</a></dd></td>
221 </tr>
222 <tr>
223 <td>Testing</td>
224 <td><a href="http://packages.debian.org/testing/devel/git-core">http://packages.debian.org/testing/devel/git-core</a></td>
225 </tr>
226 <tr class="odd">
227 <td>Unstable</td>
228 <td><a href="http://packages.debian.org/unstable/devel/git-core">http://packages.debian.org/unstable/devel/git-core</a></td>
229 </tr>
230 </td>
232 </table>
234 <h3>Development snapshots</h3>
236 <p>Daily snapshots of the main Git development branch are available at
237 <a href="http://www.codemonkey.org.uk/projects/git-snapshots/git/"
238 >http://www.codemonkey.org.uk/projects/git-snapshots/git/</a>
239 (thanks to Dave Jones).</p>
241 <h3>Git by git</h3>
243 <p>If you already have Git installed, you can get the latest
244 development version via Git itself:
245 <pre>git clone git://git.kernel.org/pub/scm/git/git.git</pre>
246 </p>
248 <p>If you have problems connecting (Git uses port 9418),
249 you can try to access the repository over the HTTP protocol:
250 <pre>git clone http://git.kernel.org/pub/scm/git/git.git</pre>
251 (this method is considerably slower but works even behind
252 firewalls and such).
253 </p>
255 <p>You can also always browse the current contents
256 of the git repository on web using the kernel.org
257 <a href="http://kernel.org/git/?p=git/git.git;a=summary">gitweb interface</a>.</p>
260 <hr />
262 <h2 id="tools">Related Tools</h2>
264 <p>Git is a true UNIX tool in the sense that it consists of many commands
265 that do one thing well. It has been designed from the start to be easily
266 wrapped in other tools and frontends. Currently, there are several
267 interfaces offering more comfortable Git usage, and also graphical
268 interfaces for browsing the history and more.</p>
270 <p>Traditionally, the low-level part of Git is called <em>plumbing</em>
271 and the interfaces and frontends are called <em>porcelains</em>.
272 Git itself comes with a default porcelain bundled and that is actually
273 what you will normally mean when you say you use Git. However, there
274 are several alternative porcelains which might offer considerably more
275 user friendly interface or extend Git to perform some specialied tasks.</p>
277 <p>There is a <strong>public Git hosting</strong> available for your
278 pet project, either mirroring your project or letting you push, and providing
279 a gitweb interface, at <a href="http://repo.or.cz/">http://repo.or.cz/</a>.</p>
281 <h3>Version Control Interface layers</h3>
283 <dl>
285 <dt id="cogito">Cogito</dt>
286 <dd>
287 <a href="http://git.or.cz/cogito/">Cogito</a>
288 is a popular version control system on top of Git.
289 It aims at seamless user interface and ease of use, providing
290 generally smoother user experience than the "raw" Git interface
291 and indeed also many other version control systems. However, it
292 also lacks many advanced capabilities of Git and is currently
293 being slowly phased out.</dd>
295 <dt id="stgit">StGIT</dt>
296 <dd><a href="http://www.procode.org/stgit/">Stacked Git</a> provides
297 a <em>Quilt</em>-like patch management functionality in the Git environment.
298 You can easily manage your patches in the scope of Git until they get
299 merged upstream.</dd>
301 <dt id="git-gui">Git-gui</dt>
302 <dd><a href="http://www.spearce.org/2007/01/git-gui-screenshots.html">git-gui</a>
303 is a simple Tk based graphical interface for common Git
304 operations. Git-gui is shipped with Git.
305 </dd>
307 </dl>
309 <h3>History Visualization</h3>
311 <dl>
313 <dt id="qgit">qgit</dt>
314 <dd><a href="http://sourceforge.net/projects/qgit">qgit</a> is a QT
315 GUI for browsing history of Git repositories, similar to <em>gitk</em>
316 (a simple GUI in TCL/TK distributed with stock Git)
317 but with more features.</dd>
319 <dt id="gitweb">gitweb</dt>
320 <dd>gitweb provides full-fledged <a href="http://www.kernel.org/git/">web interface</a>
321 for Git repositories. (gitweb is now part of the core Git distribution. Installation
322 is straightforward - take the <tt>gitweb/</tt> directory and make it accessible on the
323 web at a place with CGIs enabled. Then just tweak the configuration at the top of the
324 <tt>gitweb/gitweb.cgi</tt> script.)</dd>
326 </dl>
329 <hr />
331 <h2 id="community">Community and Development</h2>
333 <p>Git was initially written by Linus Torvalds
334 with help of a group of hackers 'round the net.
335 It is currently maintained by
336 Junio C Hamano.</p>
338 <p>The user discussion and development of Git, Cogito and other tools related to Git
339 takes place on the Git mailing list - everyone is welcome to post
340 bug reports, feature requests, comments and patches to
341 <a href="mailto:git@vger.kernel.org">git@vger.kernel.org</a>.
342 To <a href="mailto:majordomo@vger.kernel.org?body=subscribe%20git">subscribe</a>
343 to the list, send an email with just "subscribe git" in the body to
344 majordomo@vger.kernel.org.
345 The mailing list archives are available at
346 <a href="http://marc.theaimsgroup.com/?l=git">http://marc.theaimsgroup.com/?l=git</a>.</p>
348 <p>You can also visit the IRC channel dedicated to Git -
349 meet us at <a href="irc://irc.freenode.net/#git">#git at FreeNode</a>.</p>
351 <p>This website itself is tracked in Git as well -
352 you can
353 <a href="http://repo.or.cz/w/git-homepage.git">browse its development history</a>
354 or even clone it from http://repo.or.cz/r/git-homepage.git.
355 The site is covered by GPLv2
356 and maintained by <a href="mailto:pasky@suse.cz">Petr Baudis</a>
357 who always takes patches eagerly. ;-)
358 The web is based on a design by <a href="mailto:fonseca@diku.dk">Jonas Fonseca</a>
359 for the <a href="http://elinks.cz">ELinks homepage</a>.</p>
362 <hr />
364 <div class="footer">
365 <span class="menu">
366 This page is maintained by Petr Baudis. Please email me
367 at <a href="mailto:pasky@suse.cz">pasky@suse.cz</a>
368 with patches, suggestions and comments.
369 </span>
370 </div>
372 </body>
373 </html>