]> git.cworth.org Git - hgbook-git/blobdiff - tour.mdwn
Fix wording (use diverged instead of derived)
[hgbook-git] / tour.mdwn
index ac6935269f93725256f6fbf065242895028dd703..e9e02776d86cddd7b8a19c9bd8815303584cfc4c 100644 (file)
--- a/tour.mdwn
+++ b/tour.mdwn
@@ -1,11 +1,11 @@
-## Chapter 2  
+## Chapter 2
 A tour of git: the basics
 
 ### 2.0 Copyright
 
-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
+This document is a modified version of a document originally titled
+"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.
@@ -29,6 +29,16 @@ Changes made by Carl include the following:
     * Eliminate line numbers from examples
     * Modified to describe git instead of mercurial
 
+The source of this modified version can be obtained via git:
+
+       git clone git://cworth.org/git/hgbook-git
+
+or
+
+       git clone http://cworth.org/git/hgbook-git
+
+and can be [browsed online](http://git.cworth.org/git/hgbook-git)
+
 ### 2.1  Installing git on your system
 
 Prebuilt binary packages of git are available for many popular
@@ -50,25 +60,25 @@ 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 
+  * Debian
 
        apt-get install git-core
 
-  * Fedora Core 
+  * Fedora Core
 
        yum install git
 
-  * Gentoo 
+  * Gentoo
 
        emerge git
 
-  * OpenSUSE 
+  * OpenSUSE
 
        yum install git
 
-  * Ubuntu 
+  * Ubuntu
 
-       apt-get install git
+       apt-get install git-core
 
 #### 2.1.2  Mac OS X
 
@@ -90,7 +100,7 @@ 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).
+2007).
 
 ### 2.2  Getting started
 
@@ -100,7 +110,7 @@ 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.
 
-       $ git version   
+       $ git version
        git version 1.5.3.2
 
 #### 2.2.1  Built-in help
@@ -257,7 +267,7 @@ By default, this command prints a brief paragraph of output for each
 change to the project that was recorded. In git terminology, we
 call each of these recorded events a commit.
 
-The fields in a record of output from “git log” are as follows. 
+The fields in a record of output from “git log” are as follows.
 
   * commit This field consists of a string of 40 hexadecimal characters.
     This is a unique identifier for referring to particular commits.
@@ -279,20 +289,6 @@ The fields in a record of output from “git log” are as follows.
 The default output printed by “git log” is purely a summary; it is
 missing a lot of detail.
 
-Figure [2.1][8] provides a graphical representation of the history of
-the hello repository, to make it a little easier to see which
-direction history is “flowing” in. We’ll be returning to this figure
-several times in this chapter and the chapter that follows.
-
-* * *
-
-![PIC][9]   
-
-Figure 2.1: 
-Graphical history of the hello repository
-
-* * *
-
 #### 2.4.1  Commits, revisions, and talking to other people
 
 As English is a notoriously sloppy language, and computer science has
@@ -343,7 +339,7 @@ in the current branch, "HEAD~", refers to the previous commit, and
 
 Another useful syntax is .. which can be used to specify a range of
 commits. So "origin..master" specifies everything that has been
-committed to master since it derived from origin.
+committed to master since it diverged from origin.
 
 #### 2.4.3  Viewing specific revisions
 
@@ -399,7 +395,7 @@ created:
 Another useful option is -n or --max-count which, unsurprisingly,
 limits the maximum number of commits to be displayed.
 
-#### 2.4.3  More detailed information
+#### 2.4.5  More detailed information
 
 While the default information printed by “git log” is useful if you
 already know what you’re looking for, you may need to see more details
@@ -564,7 +560,7 @@ scripted example this way. Since you’re not under the same constraint,
 you probably won’t want to use sed; simply use your preferred text
 editor to do the same thing.)
 
-       $ sed -i '/printf/a\\tprintf("hello again!\\n");' hello.c       
+       $ sed -i '/printf/a\\tprintf("hello again!\\n");' hello.c     
 
 The “git status” command will tell us what git knows about the files
 in the repository.
@@ -683,7 +679,7 @@ the files directly. Use your favorite editor to create a file called
 then it will be there already). The initial contents of your
 .gitconfig should look like this.
 
-       # This is a git configuration file.   
+       # This is a git configuration file. 
        [user]
                name = Your Name
                email = you@example.com
@@ -934,7 +930,7 @@ command is coneptually the combination of two commands, "git fetch"
 and "git merge"; we can run those separately to examine the changes
 before applying them locally. First we do the fetch:
 
-       $ cd hello-pull   
+       $ cd hello-pull
        $ git fetch ../my-hello
        remote: Generating pack...
        Unpacking 3 objects...
@@ -1014,6 +1010,22 @@ the common case for the upstream-tracking scenario), then "git pull"
 with no explicit repository is suffcient, and it will default to
 pulling from the same repository as the original clone.
 
+[XXX: The structure of the preceding section follows that of the
+original hgbook. But an alternate structure that arranged to pull from
+the originally cloned repository (as would be common) would allow for
+more straightforward use of git's features. For example, instead of
+the silly FETCH_HEAD stuff it would allow for "git fetch" and "git log
+master..origin" to be a very nice replacement for "hg
+incoming". Similarly, below, "git log origin..master" would make a
+nice replacement for "hg outgoing" which is something I didn't offer
+at all. One could also use git's remotes with the myriad repositories
+as used here, but it would require doing things like "git remote add
+<some-name> ../hello-pull" and that seems like a bit much to introduce
+for a turorial of this level. If nothing else, if the above section
+seems a little intimidating, understand that it's because things are
+not presented in the most natural "git way", (and I'm a little too
+tired to fix it tonight).]
+
 #### 2.8.2  Checking out previous revisions
 
 If any users of mercurial are reading this, they might wonder if
@@ -1105,7 +1117,7 @@ limited to working with local repositories. Each works in exactly the
 same fashion over a network connection; simply pass in a URL or an ssh
 host:/path/name specification instead of a local path.
 
-## Appendix D  
+## Appendix D
 Open Publication License
 
 Version 1.0, 8 June 1999