]> git.notmuchmail.org Git - hgbook-git/blobdiff - tour.mdwn
Port section 2.2 (Getting started) from mercurial to git
[hgbook-git] / tour.mdwn
index 1d8435be1b6626b051cd5ed87e901b4afc06243b..e6429f24592acec073ac8df11b235f311b307a83 100644 (file)
--- a/tour.mdwn
+++ b/tour.mdwn
@@ -1,10 +1,12 @@
 ## Chapter 2  
-A tour of Mercurial: the basics
+A tour of git: the basics
 
 ### 2.0 Copyright
 
-Distributed revision control with Mercurial
-Bryan O’Sullivan
+This document is a modified version originally known as "Distributed
+revision control with Mercurial" and originally authored by Bryan
+O’Sullivan. The original document was obtained from
+<http://hgbook.red-bean.com/>.
 
 Copyright © 2006, 2007 Bryan O’Sullivan.
 
@@ -12,122 +14,116 @@ This material may be distributed only subject to the terms and
 conditions set forth in version 1.0 of the Open Publication
 License. Please refer to Appendix D for the license text.
 
-### 2.1  Installing Mercurial on your system
+As this is a modified version, the name of Bryan O'Sullivan is used
+only to properly credit him with the original text. The appearance of
+his name here explicitly does not assert or imply his endorsement of
+this modified document.
 
-Prebuilt binary packages of Mercurial are available for every popular
-operating system. These make it easy to start using Mercurial on your
+Portions Copyright © 2007 Carl Worth.
+
+Changes made by Carl include the following:
+
+  * 2007-09-27:
+    * Convert from HTML to markdown source syntax
+    * Eliminate all content except Chapter 2 and Appendix D
+    * Eliminate line numbers from examples
+    * Modified to describe git instead of mercurial
+
+### 2.1  Installing git on your system
+
+Prebuilt binary packages of git are available for many popular
+operating systems. These make it easy to start using git on your
 computer immediately.
 
 #### 2.1.1  Linux
 
 Because each Linux distribution has its own packaging tools, policies,
 and rate of development, it’s difficult to give a comprehensive set of
-instructions on how to install Mercurial binaries. The version of
-Mercurial that you will end up with can vary depending on how active
+instructions on how to install git binaries. The version of
+git that you will end up with can vary depending on how active
 the person is who maintains the package for your distribution.
 
-To keep things simple, I will focus on installing Mercurial from the
+To keep things simple, I will focus on installing git from the
 command line under the most popular Linux distributions. Most of these
 distributions provide graphical package managers that will let you
-install Mercurial with a single click; the package name to look for is
-mercurial.
+install git with a single click. The package name to look for is
+often git, but is sometimes git-core, (due to an unfortunate name
+with git, meaning GNU Interactive Tools).
 
   * Debian 
 
-       apt-get install mercurial
+       apt-get install git-core
 
   * Fedora Core 
 
-       yum install mercurial
+       yum install git
 
   * Gentoo 
 
-       emerge mercurial
+       emerge git
 
   * OpenSUSE 
 
-       yum install mercurial
-
-  * Ubuntu Ubuntu’s Mercurial package is based on Debian’s. To install
-it, run the following command.
+       yum install git
 
-       apt-get install mercurial
+  * Ubuntu 
 
-The Ubuntu package for Mercurial tends to lag behind the Debian
-version by a considerable time margin (at the time of writing, seven
-months), which in some cases will mean that on Ubuntu, you may run
-into problems that have since been fixed in the Debian package.
+       apt-get install git
 
-#### 2.1.2  Solaris
+#### 2.1.2  Mac OS X
 
-XXX. 
+A git-core package is available through
+[macports](http://macports.org). Once macports is enabled, the command
+to install git is:
 
-#### 2.1.3  Mac OS X
+       port install git-core
 
-Lee Cantey publishes an installer of Mercurial for Mac OS X at
-[http://mercurial.berkwood.com][6]. This package works on both
-Intel- and Power-based Macs. Before you can use it, you must install a
-compatible version of Universal MacPython [[BI][7]]. This is easy to
-do; simply follow the instructions on Lee’s site.
+#### 2.1.3  Windows
 
-#### 2.1.4  Windows
-
-Lee Cantey also publishes an installer of Mercurial for Windows at
-[http://mercurial.berkwood.com][6]. This package has no external
-dependencies; it “just works”.
-
-Note: The Windows version of Mercurial does not automatically convert
-line endings between Windows and Unix styles. If you want to share
-work with Unix users, you must do a little additional configuration
-work. XXX Flesh this out.
+Git has long been available as part of cygwin, and works reasonably
+well in that environment. Some people find cygwin a particularly
+inelegant approach to running git and would prefer a "native"
+solution. To this end, the [msysgit
+project](http://code.google.com/p/msysgit/) is rapidly putting
+together a solution including various packages with full
+installers. These include GitMe, a package to install the entire
+development environment necessary to work on improving the msysgit
+port of git, and WinGit, a package for installing just git itself
+without the development environment, (still in Alpha as of September
+2008).
 
 ### 2.2  Getting started
 
-To begin, we’ll use the “hg version” command to find out whether
-Mercurial is actually installed properly. The actual version
-information that it prints isn’t so important; it’s whether it prints
-anything at all that we care about.
+To begin, we’ll use the “git version” command to find out whether git
+is actually installed properly. Versions 1.5 and newer of git are much
+more friendly to new users than versions 1.4 and older. If you aren't
+yet running version 1.5 or newer, it's highly recommended that you
+upgrade.
 
-       $ hg version   
-       Mercurial Distributed SCM (version 2937d0dbfab0)   
-       
-       Copyright (C) 2005, 2006 Matt Mackall <mpm@selenic.com>   
-       This is free software; see the source for copying conditions. There is NO   
-       warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+       $ git version   
+       git version 1.5.3.2
 
 #### 2.2.1  Built-in help
 
-Mercurial provides a built-in help system. This is invaluable for
-those times when you find yourself stuck trying to remember how to run
-a command. If you are completely stuck, simply run “hg help”; it will
-print a brief list of commands, along with a description of what each
-does. If you ask for help on a specific command (as below), it prints
-more detailed information.
-
-       $ hg help init   
-       hg init [-e CMD] [--remotecmd CMD] [DEST]   
-       
-       create a new repository in the given directory   
-       
-       Initialize a new repository in the given directory.  If the given   
-       directory does not exist, it is created.   
-       
-       If no directory is given, the current directory is used.   
-       
-       It is possible to specify an ssh:// URL as the destination.   
-       Look at the help text for the pull command for important details   
-       about ssh:// URLs.   
-       
-       options:   
-       
-       -e --ssh        specify ssh command to use   
-       --remotecmd  specify hg command to run on the remote side   
-       
-       use "hg -v help init" to show global options
-
-For a more impressive level of detail (which you won’t usually need)
-run “hg help -v”. The -v option is short for --verbose, and tells
-Mercurial to print more information than it usually would.
+Git provides a built-in help system. This is invaluable for those
+times when you find yourself stuck trying to remember how to run a
+command. If you are completely stuck, simply run “git help”; it will
+print a brief list of commonly-used commands, along with a description
+of what each does. If you ask for help on a specific command (such as
+"git help init"), it prints more detailed information. [XXX: Does "git
+help <foo>" work universally as a built-in or does it expect man to be
+present and just call out to "man git-<foo>"?]
+
+       [XXX: The original hgbook includes the complete output of "hg
+       help init" at this point. I'm not including the corresponding
+       "git help init" output as it would be excessively long. The
+       description alone is quite reasonable, (other than a
+       not-too-helpful aside about the obsolete git-init-db command),
+       but it only comes after a full screen's worth of options
+       details. Might it make sense to have a more summarized help
+       output for "git help <foo>" than all of the documentation
+       available for git-<foo>? And perhaps alos provide a "git -v
+       help" similar to "hg -v help" for more?]
 
 ### 2.3  Working with a repository