Many minor edits
[gitmagic.git] / preface.html
blob98d34230c3bff90960d08513ec6831cf806301ae
1 <h1>Git Magic</h1>
2 <p>
3 <a href="http://git.or.cz/">Git</a> is a version control Swiss army knife. A reliable versatile multipurpose revision control tool whose extraordinary flexibility makes it tricky to learn, let alone master. I'm recording what I've figured out so far in these pages.
4 </p>
5 <p>
6 As Arthur C. Clarke observed, any sufficiently advanced technology is indistinguishable from magic, and this is a great way to approach Git. Newbies can ignore its inner workings and view Git as a gizmo that can amaze friends and infuriate enemies with its wondrous abilities.
7 </p>
8 <p>
9 So rather than go into details, I'll provide rough instructions for particular effects. After repeated use, gradually you will understand how each trick works, and how to tailor the recipes for your needs.
10 </p>
11 <h2>References</h2>
12 <ul>
13 <li>
14 <a href="http://git.or.cz">Git homepage</a> which hosts
15 <a href="http://www.kernel.org/pub/software/scm/git/docs/user-manual.html">the official Git user manual</a>, <a href="http://www.kernel.org/pub/software/scm/git/docs/git.html">Git manual pages</a>, <a href="http://www.kernel.org/pub/software/scm/git/docs/tutorial.html">tutorial</a>, and <a href="http://git.or.cz/gitwiki/GitHistory">historical background</a>.
16 </li>
17 <li>
18 <a href="http://en.wikipedia.org/wiki/Git_%28software%29">Wikipedia entry on Git</a>
19 </li>
20 <li>
21 <a href="http://eagain.net/articles/git-for-computer-scientists/">Git For Computer Scientists</a> by Tommi Virtanen.
22 </li>
23 <li>
24 <a href="http://www.selenic.com/mercurial/wiki/index.cgi/UnderstandingMercurial">Understanding Mercurial</a>, a highly accessible introduction to distributed version control.
25 </li>
26 <li>
27 <a href="http://lkml.org/lkml/2005/4/6/121">Linux Kernel Mailing List post</a> describing the chain of events that led to Git. The entire thread is a fascinating archaeological site for Git historians.
28 </li>
29 </ul>
30 Comparisons with other version control systems:
31 <ul>
32 <li>
33 <p>
34 Git versus Subversion: articles by
35 <a href="http://git.or.cz/gitwiki/GitSvnComparsion">Shawn Pearce</a>,
36 <a href="http://mjtsai.com/blog/2007/07/15/subversion-to-git/">Michael Tsai</a>,
37 <a href="http://utsl.gen.nz/talks/git-svn/intro.html">Sam Vilain</a>.
38 </li>
39 <li>
40 <p>
41 <a href="http://subversion.tigris.org/subversion-linus.html">Subversion vs itself</a>: in response to its defence of Subversion's limitations, I claim Git is right for <i>every</i> project. I also claim where there is more than one programmer, there is decentralized development.
42 </p>
43 <p>
44 Saying you should use systems that don't scale well when your project is small is like saying you should use Roman numerals for calculations involving small numbers.
45 </p>
46 </li>
47 <li>
48 <p>
49 Git versus Mercurial: articles by
50 <a href="http://tytso.livejournal.com/29467.html">Ted Tso</a>,
51 <a href="http://www.jukie.net/~bart/blog/git-vs-hg">Bart Trojanowski</a>
52 </p>
53 </li>
54 </ul>
55 <p>
56 Other guides:
57 </p>
58 <ul>
59 <li>
60 <a href="http://wiki.sourcemage.org/Git_Guide">Git Guide</a> at SourceMage.
61 </li>
62 <li>
63 <a href="http://git.or.cz/course/svn.html">Git crash course for Subversion users</a>
64 </li>
65 <li>
66 <a href="http://linux.yyz.us/git-howto.html">Kernel Hacker's Guide to Git</a> by Jeff Garzik.
67 </li>
68 <li>
69 <a href="http://wiki.samba.org/index.php/Using_Git_for_Samba_Development">Using Git for Samba Development</a>
70 </li>
71 <li>
72 <a href="http://polywww.in2p3.fr/~gaycken/Calice/Software/my_git_workflow.html">Advanced Git work flow</a> described by Götz Gaycken.
73 </li>
74 </ul>