Autogenerated HTML docs for v1.5.6.2-276-gbb29
authorJunio C Hamano <junio@hera.kernel.org>
Wed, 9 Jul 2008 19:53:42 +0000 (19:53 +0000)
committerJunio C Hamano <junio@hera.kernel.org>
Wed, 9 Jul 2008 19:53:42 +0000 (19:53 +0000)
13 files changed:
RelNotes-1.5.6.3.txt [new file with mode: 0644]
config.txt
git-config.html
git-rev-parse.html
git-rev-parse.txt
git.html
git.txt
gitcore-tutorial.html
gitcore-tutorial.txt
gitglossary.html
gitglossary.txt
user-manual.html
user-manual.txt

diff --git a/RelNotes-1.5.6.3.txt b/RelNotes-1.5.6.3.txt
new file mode 100644 (file)
index 0000000..dd0559b
--- /dev/null
@@ -0,0 +1,42 @@
+GIT v1.5.6.3 Release Notes
+==========================
+
+Fixes since v1.5.6.2
+--------------------
+
+* Setting GIT_TRACE will report spawning of external process via run_command().
+
+* Bash completion script did not notice '--' marker on the command
+  line and tried the relatively slow "ref completion" even when
+  completing arguments after one.
+
+* Registering a non-empty blob racily and then truncating the working
+  tree file for it confused "racy-git avoidance" logic into thinking
+  that the path is now unchanged.
+
+* "git clone" had a leftover debugging fprintf().
+
+* "git clone -q" was not quiet enough as it used to and gave object count
+  and progress reports.
+
+* "git clone" marked downloaded packfile with .keep; this could be a
+  good thing if the remote side is well packed but otherwise not,
+  especially for a project that is not really big.
+
+* The section that describes attributes related to git-archive were placed
+  in a wrong place in the gitattributes(5) manual page.
+
+* When "git push" tries to remove a remote ref, and corresponding
+  tracking ref is missing, we used to report error (i.e. failure to
+  remove something that does not exist).
+
+* "git mailinfo" (hence "git am") did not handle commit log messages in a
+  MIME multipart mail correctly.
+
+Contains other various documentation fixes.
+
+--
+exec >/var/tmp/1
+O=v1.5.6.2-23-ge965647
+echo O=$(git describe maint)
+git shortlog --no-merges $O..maint
index 838794dca71d59f82eaec770ba31537297af8066..e7848055a90c38f48ad7180cb538d0b00e482710 100644 (file)
@@ -685,7 +685,7 @@ gitcvs.usecrlfattr
        treat it as text. If `crlf` is explicitly unset, the file
        will be set with '-kb' mode, which supresses any newline munging
        the client might otherwise do. If `crlf` is not specified,
-       then 'gitcvs.allbinary' is used. See linkgit:gitattribute[5].
+       then 'gitcvs.allbinary' is used. See linkgit:gitattributes[5].
 
 gitcvs.allbinary::
        This is used if 'gitcvs.usecrlfattr' does not resolve
index 2a83c2021987edc03b2496dc1daafc00c40da9ef..7a2a3ae888ff62062adcf451cb00d85114a2f2e9 100644 (file)
@@ -1766,7 +1766,7 @@ gitcvs.logfile
         treat it as text. If <tt>crlf</tt> is explicitly unset, the file\r
         will be set with <em>-kb</em> mode, which supresses any newline munging\r
         the client might otherwise do. If <tt>crlf</tt> is not specified,\r
-        then <em>gitcvs.allbinary</em> is used. See <a href="gitattribute.html">gitattribute(5)</a>.</p></div>\r
+        then <em>gitcvs.allbinary</em> is used. See <a href="gitattributes.html">gitattributes(5)</a>.</p></div>\r
 <div class="vlist"><dl>\r
 <dt>\r
 gitcvs.allbinary\r
@@ -2685,7 +2685,7 @@ web.browser
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-07-07 22:10:11 UTC\r
+Last updated 2008-07-09 19:53:03 UTC\r
 </div>\r
 </div>\r
 </body>\r
index fe70a422f3ec05f4480dd9c934c91ebeafdb8027..9b3229b1723e566ab32f4e5b6367164f7ad08ccd 100644 (file)
@@ -631,7 +631,7 @@ A symbolic ref name.  E.g. <em>master</em> typically means the commit
 <li>\r
 <p>\r
 if <tt>$GIT_DIR/&lt;name&gt;</tt> exists, that is what you mean (this is usually\r
-    useful only for <tt>HEAD</tt>, <tt>FETCH_HEAD</tt> and <tt>MERGE_HEAD</tt>);\r
+    useful only for <tt>HEAD</tt>, <tt>FETCH_HEAD</tt>, <tt>ORIG_HEAD</tt> and <tt>MERGE_HEAD</tt>);\r
 </p>\r
 </li>\r
 <li>\r
@@ -658,6 +658,15 @@ otherwise, <tt>$GIT_DIR/refs/remotes/&lt;name&gt;</tt> if exists;
 <p>\r
 otherwise, <tt>$GIT_DIR/refs/remotes/&lt;name&gt;/HEAD</tt> if exists.\r
 </p>\r
+<div class="para"><p>HEAD names the commit your changes in the working tree is based on.\r
+FETCH_HEAD records the branch you fetched from a remote repository\r
+with your last <em>git-fetch</em> invocation.\r
+ORIG_HEAD is created by commands that moves your HEAD in a drastic\r
+way, to record the position of the HEAD before their operation, so that\r
+you can change the tip of the branch back to the state before you ran\r
+them easily.\r
+MERGE_HEAD records the commit(s) you are merging into your branch\r
+when you run <em>git-merge</em>.</p></div>\r
 </li>\r
 </ol></div>\r
 </li>\r
@@ -801,10 +810,10 @@ commit, following the commit ancestry chain.</p></div>
 notation is used.  E.g. "<tt>&#94;r1 r2</tt>" means commits reachable\r
 from <tt>r2</tt> but exclude the ones reachable from <tt>r1</tt>.</p></div>\r
 <div class="para"><p>This set operation appears so often that there is a shorthand\r
-for it.  "<tt>r1..r2</tt>" is equivalent to "<tt>&#94;r1 r2</tt>".  It is\r
-the difference of two sets (subtract the set of commits\r
-reachable from <tt>r1</tt> from the set of commits reachable from\r
-<tt>r2</tt>).</p></div>\r
+for it.  When you have two commits <tt>r1</tt> and <tt>r2</tt> (named according\r
+to the syntax explained in SPECIFYING REVISIONS above), you can ask\r
+for commits that are reachable from r2 excluding those that are reachable\r
+from r1 by "<tt>&#94;r1 r2</tt>" and it can be written as "<tt>r1..r2</tt>".</p></div>\r
 <div class="para"><p>A similar notation "<tt>r1...r2</tt>" is called symmetric difference\r
 of <tt>r1</tt> and <tt>r2</tt> and is defined as\r
 "<tt>r1 r2 --not $(git merge-base --all r1 r2)</tt>".\r
@@ -964,7 +973,7 @@ Junio C Hamano &lt;junkio@cox.net&gt; and Pierre Habouzit &lt;madcoder@debian.or
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-07-07 22:10:11 UTC\r
+Last updated 2008-07-09 19:53:03 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 378a3124acdbc96a9efbe06c253f1fd561cf3d7e..088f971b790ddd11d39ab2c3b441833961e53a0f 100644 (file)
@@ -166,7 +166,7 @@ blobs contained in a commit.
   first match in the following rules:
 
   . if `$GIT_DIR/<name>` exists, that is what you mean (this is usually
-    useful only for `HEAD`, `FETCH_HEAD` and `MERGE_HEAD`);
+    useful only for `HEAD`, `FETCH_HEAD`, `ORIG_HEAD` and `MERGE_HEAD`);
 
   . otherwise, `$GIT_DIR/refs/<name>` if exists;
 
@@ -177,6 +177,16 @@ blobs contained in a commit.
   . otherwise, `$GIT_DIR/refs/remotes/<name>` if exists;
 
   . otherwise, `$GIT_DIR/refs/remotes/<name>/HEAD` if exists.
++
+HEAD names the commit your changes in the working tree is based on.
+FETCH_HEAD records the branch you fetched from a remote repository
+with your last 'git-fetch' invocation.
+ORIG_HEAD is created by commands that moves your HEAD in a drastic
+way, to record the position of the HEAD before their operation, so that
+you can change the tip of the branch back to the state before you ran
+them easily.
+MERGE_HEAD records the commit(s) you are merging into your branch
+when you run 'git-merge'.
 
 * A ref followed by the suffix '@' with a date specification
   enclosed in a brace
@@ -289,10 +299,10 @@ notation is used.  E.g. "`{caret}r1 r2`" means commits reachable
 from `r2` but exclude the ones reachable from `r1`.
 
 This set operation appears so often that there is a shorthand
-for it.  "`r1..r2`" is equivalent to "`{caret}r1 r2`".  It is
-the difference of two sets (subtract the set of commits
-reachable from `r1` from the set of commits reachable from
-`r2`).
+for it.  When you have two commits `r1` and `r2` (named according
+to the syntax explained in SPECIFYING REVISIONS above), you can ask
+for commits that are reachable from r2 excluding those that are reachable
+from r1 by "`{caret}r1 r2`" and it can be written as "`r1..r2`".
 
 A similar notation "`r1\...r2`" is called symmetric difference
 of `r1` and `r2` and is defined as
index 0c59a39594366c364600af7f19de20ba904a9fc6..d4a974c91c271f25ad7e20f03731343955d29f58 100644 (file)
--- a/git.html
+++ b/git.html
@@ -2014,7 +2014,7 @@ contributors on the git-list &lt;git@vger.kernel.org&gt;.</p></div>
 <h2 id="_see_also">SEE ALSO</h2>\r
 <div class="sectionbody">\r
 <div class="para"><p><a href="gittutorial.html">gittutorial(7)</a>, <a href="gittutorial-2.html">gittutorial-2(7)</a>,\r
-<a href="giteveryday.html">giteveryday(7)</a>, <a href="gitcvs-migration.html">gitcvs-migration(7)</a>,\r
+<a href="everyday.html">everyday(7)</a>, <a href="gitcvs-migration.html">gitcvs-migration(7)</a>,\r
 <a href="gitglossary.html">gitglossary(7)</a>, <a href="gitcore-tutorial.html">gitcore-tutorial(7)</a>,\r
 <a href="gitcli.html">gitcli(7)</a>, <a href="user-manual.html">The Git User's Manual</a></p></div>\r
 </div>\r
@@ -2024,7 +2024,7 @@ contributors on the git-list &lt;git@vger.kernel.org&gt;.</p></div>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-07-07 22:10:12 UTC\r
+Last updated 2008-07-09 19:53:04 UTC\r
 </div>\r
 </div>\r
 </body>\r
diff --git a/git.txt b/git.txt
index b7546aca1cf2608c8760ad7e6fa01c5db34f5013..4ecdc9f876143bc23197ef7361576f995cd998fb 100644 (file)
--- a/git.txt
+++ b/git.txt
@@ -600,7 +600,7 @@ contributors on the git-list <git@vger.kernel.org>.
 SEE ALSO
 --------
 linkgit:gittutorial[7], linkgit:gittutorial-2[7],
-linkgit:giteveryday[7], linkgit:gitcvs-migration[7],
+linkgit:everyday[7], linkgit:gitcvs-migration[7],
 linkgit:gitglossary[7], linkgit:gitcore-tutorial[7],
 linkgit:gitcli[7], link:user-manual.html[The Git User's Manual]
 
index fb37259cb9b7d802095e23f0f2ea9f644a97e7fb..36c0fcea7cdf310e6035ef9806522263a13abe4c 100644 (file)
@@ -2028,7 +2028,7 @@ to follow, not easier.</p></div>
 <h2 id="_see_also">SEE ALSO</h2>\r
 <div class="sectionbody">\r
 <div class="para"><p><a href="gittutorial.html">gittutorial(7)</a>, <a href="gittutorial-2.html">gittutorial-2(7)</a>,\r
-<a href="giteveryday.html">giteveryday(7)</a>, <a href="gitcvs-migration.html">gitcvs-migration(7)</a>,\r
+<a href="everyday.html">everyday(7)</a>, <a href="gitcvs-migration.html">gitcvs-migration(7)</a>,\r
 <a href="user-manual.html">The Git User's Manual</a></p></div>\r
 </div>\r
 <h2 id="_git">GIT</h2>\r
@@ -2037,7 +2037,7 @@ to follow, not easier.</p></div>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-07-06 05:17:12 UTC\r
+Last updated 2008-07-09 19:53:06 UTC\r
 </div>\r
 </div>\r
 </body>\r
index a2b92933f734734cbc4bfe60987724fac47ecbdd..49179b0a00fad1ecda1fdf0537ccbce77f5fc494 100644 (file)
@@ -1690,7 +1690,7 @@ to follow, not easier.
 SEE ALSO
 --------
 linkgit:gittutorial[7], linkgit:gittutorial-2[7],
-linkgit:giteveryday[7], linkgit:gitcvs-migration[7],
+linkgit:everyday[7], linkgit:gitcvs-migration[7],
 link:user-manual.html[The Git User's Manual]
 
 GIT
index 11b175592c53758020e73724e7c1712a723a6624..3954b10fefd9678d5ce62c4a191ee16471cb436c 100644 (file)
@@ -3,7 +3,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
 <head>\r
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<meta name="generator" content="AsciiDoc 8.2.5" />\r
 <style type="text/css">\r
 /* Debug borders */\r
 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
@@ -16,8 +16,13 @@ body {
   margin: 1em 5% 1em 5%;\r
 }\r
 \r
-a { color: blue; }\r
-a:visited { color: fuchsia; }\r
+a {\r
+  color: blue;\r
+  text-decoration: underline;\r
+}\r
+a:visited {\r
+  color: fuchsia;\r
+}\r
 \r
 em {\r
   font-style: italic;\r
@@ -39,13 +44,18 @@ h1, h2, h3, h4, h5, h6 {
   line-height: 1.3;\r
 }\r
 \r
-h1 {\r
+h1, h2, h3 {\r
   border-bottom: 2px solid silver;\r
 }\r
 h2 {\r
-  border-bottom: 2px solid silver;\r
   padding-top: 0.5em;\r
 }\r
+h3 {\r
+  float: left;\r
+}\r
+h3 + * {\r
+  clear: left;\r
+}\r
 \r
 div.sectionbody {\r
   font-family: serif;\r
@@ -70,7 +80,7 @@ span#author {
   color: #527bbd;\r
   font-family: sans-serif;\r
   font-weight: bold;\r
-  font-size: 1.2em;\r
+  font-size: 1.1em;\r
 }\r
 span#email {\r
 }\r
@@ -139,6 +149,9 @@ div.sidebarblock > div.content {
   padding: 0.5em;\r
 }\r
 \r
+div.listingblock {\r
+  margin-right: 0%;\r
+}\r
 div.listingblock > div.content {\r
   border: 1px solid silver;\r
   background: #f4f4f4;\r
@@ -148,9 +161,13 @@ div.listingblock > div.content {
 div.quoteblock > div.content {\r
   padding-left: 2.0em;\r
 }\r
-div.quoteblock .attribution {\r
+\r
+div.attribution {\r
   text-align: right;\r
 }\r
+div.verseblock + div.attribution {\r
+  text-align: left;\r
+}\r
 \r
 div.admonitionblock .icon {\r
   vertical-align: top;\r
@@ -194,13 +211,12 @@ dd > *:first-child {
 ul, ol {\r
     list-style-position: outside;\r
 }\r
-ol.olist2 {\r
+div.olist2 ol {\r
   list-style-type: lower-alpha;\r
 }\r
 \r
 div.tableblock > table {\r
-  border-color: #527bbd;\r
-  border-width: 3px;\r
+  border: 3px solid #527bbd;\r
 }\r
 thead {\r
   font-family: sans-serif;\r
@@ -214,6 +230,9 @@ div.hlist {
   margin-top: 0.8em;\r
   margin-bottom: 0.8em;\r
 }\r
+div.hlist td {\r
+  padding-bottom: 5px;\r
+}\r
 td.hlist1 {\r
   vertical-align: top;\r
   font-style: italic;\r
@@ -226,7 +245,33 @@ td.hlist2 {
 @media print {\r
   div#footer-badges { display: none; }\r
 }\r
-include::./stylesheets/xhtml11-manpage.css[]\r
+\r
+div#toctitle {\r
+  color: #527bbd;\r
+  font-family: sans-serif;\r
+  font-size: 1.1em;\r
+  font-weight: bold;\r
+  margin-top: 1.0em;\r
+  margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+  margin-top: 0;\r
+  margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+  margin-left: 2em;\r
+  font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+  margin-left: 4em;\r
+  font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+  margin-left: 6em;\r
+  font-size: 0.9em;\r
+}\r
+include1::./stylesheets/xhtml11-manpage.css[]\r
 /* Workarounds for IE6's broken and incomplete CSS2. */\r
 \r
 div.sidebar-content {\r
@@ -255,6 +300,9 @@ div.exampleblock-content {
   border-left: 2px solid silver;\r
   padding-left: 0.5em;\r
 }\r
+\r
+/* IE6 sets dynamically generated links as visited. */\r
+div#toc a:visited { color: blue; }\r
 </style>\r
 <title>gitglossary(7)</title>\r
 </head>\r
@@ -272,11 +320,11 @@ gitglossary(7) Manual Page
 </div>\r
 <h2>SYNOPSIS</h2>\r
 <div class="sectionbody">\r
-<p>*</p>\r
+<div class="para"><p>*</p></div>\r
 </div>\r
-<h2>DESCRIPTION</h2>\r
+<h2 id="_description">DESCRIPTION</h2>\r
 <div class="sectionbody">\r
-<dl>\r
+<div class="vlist"><dl>\r
 <dt>\r
 <a id="def_alternate_object_database"></a>alternate object database\r
 </dt>\r
@@ -403,10 +451,10 @@ gitglossary(7) Manual Page
         use the words "revision" or "version".  Also used as a short\r
         hand for <a href="#def_commit_object">commit object</a>.\r
 </p>\r
-<p>As a verb: The action of storing a new snapshot of the project's\r
+<div class="para"><p>As a verb: The action of storing a new snapshot of the project's\r
 state in the git history, by creating a new commit representing the current\r
 state of the <a href="#def_index">index</a> and advancing <a href="#def_HEAD">HEAD</a>\r
-to point at the new commit.</p>\r
+to point at the new commit.</p></div>\r
 </dd>\r
 <dt>\r
 <a id="def_commit_object"></a>commit object\r
@@ -670,12 +718,12 @@ to point at the new commit.</p>
         conflict, manual intervention may be required to complete the\r
         merge.\r
 </p>\r
-<p>As a noun: unless it is a <a href="#def_fast_forward">fast forward</a>, a\r
+<div class="para"><p>As a noun: unless it is a <a href="#def_fast_forward">fast forward</a>, a\r
 successful merge results in the creation of a new <a href="#def_commit">commit</a>\r
 representing the result of the merge, and having as\r
 <a href="#def_parent">parents</a> the tips of the merged <a href="#def_branch">branches</a>.\r
 This commit is referred to as a "merge commit", or sometimes just a\r
-"merge".</p>\r
+"merge".</p></div>\r
 </dd>\r
 <dt>\r
 <a id="def_object"></a>object\r
@@ -876,8 +924,8 @@ This commit is referred to as a "merge commit", or sometimes just a
 <dd>\r
 <p>\r
         A reflog shows the local "history" of a ref.  In other words,\r
-        it can tell you what the 3rd last revision in _this_ repository\r
-        was, and what was the current state in _this_ repository,\r
+        it can tell you what the 3rd last revision in <em>this</em> repository\r
+        was, and what was the current state in <em>this</em> repository,\r
         yesterday 9:14pm.  See <a href="git-reflog.html">git-reflog(1)</a> for details.\r
 </p>\r
 </dd>\r
@@ -1090,21 +1138,21 @@ This commit is referred to as a "merge commit", or sometimes just a
         that you have made but not yet committed.\r
 </p>\r
 </dd>\r
-</dl>\r
+</dl></div>\r
 </div>\r
-<h2>SEE ALSO</h2>\r
+<h2 id="_see_also">SEE ALSO</h2>\r
 <div class="sectionbody">\r
-<p><a href="gittutorial.html">gittutorial(7)</a>, <a href="gittutorial-2.html">gittutorial-2(7)</a>,\r
-<a href="giteveryday.html">giteveryday(7)</a>, <a href="gitcvs-migration.html">gitcvs-migration(7)</a>,\r
-<a href="user-manual.html">The Git User's Manual</a></p>\r
+<div class="para"><p><a href="gittutorial.html">gittutorial(7)</a>, <a href="gittutorial-2.html">gittutorial-2(7)</a>,\r
+<a href="everyday.html">everyday(7)</a>, <a href="gitcvs-migration.html">gitcvs-migration(7)</a>,\r
+<a href="user-manual.html">The Git User's Manual</a></p></div>\r
 </div>\r
-<h2>GIT</h2>\r
+<h2 id="_git">GIT</h2>\r
 <div class="sectionbody">\r
-<p>Part of the <a href="git.html">git(1)</a> suite.</p>\r
+<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite.</p></div>\r
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 02-Jul-2008 03:02:12 UTC\r
+Last updated 2008-07-09 19:53:07 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 5c5c31d31c6057d9f3c6da7a5f6d6cdc40c023f6..565719ed5f8516e17229ec11bbec5e1354580397 100644 (file)
@@ -17,7 +17,7 @@ include::glossary-content.txt[]
 SEE ALSO
 --------
 linkgit:gittutorial[7], linkgit:gittutorial-2[7],
-linkgit:giteveryday[7], linkgit:gitcvs-migration[7],
+linkgit:everyday[7], linkgit:gitcvs-migration[7],
 link:user-manual.html[The Git User's Manual]
 
 GIT
index 974ed6ecbce6d5cc01efb77ef1f39979b598c9e1..bafdc13cfa8831c8e04a5b64aaa5d634b4150d5d 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Git User's Manual (for version 1.5.3 or newer)</title><link rel="stylesheet" href="docbook-xsl.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="id450364"></a>Git User's Manual (for version 1.5.3 or newer)</h1></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="#id482845">Preface</a></span></dt><dt><span class="chapter"><a href="#repositories-and-branches">1. Repositories and Branches</a></span></dt><dd><dl><dt><span class="section"><a href="#how-to-get-a-git-repository">How to get a git repository</a></span></dt><dt><span class="section"><a href="#how-to-check-out">How to check out a different version of a project</a></span></dt><dt><span class="section"><a href="#understanding-commits">Understanding History: Commits</a></span></dt><dd><dl><dt><span class="section"><a href="#understanding-reachability">Understanding history: commits, parents, and reachability</a></span></dt><dt><span class="section"><a href="#history-diagrams">Understanding history: History diagrams</a></span></dt><dt><span class="section"><a href="#what-is-a-branch">Understanding history: What is a branch?</a></span></dt></dl></dd><dt><span class="section"><a href="#manipulating-branches">Manipulating branches</a></span></dt><dt><span class="section"><a href="#detached-head">Examining an old version without creating a new branch</a></span></dt><dt><span class="section"><a href="#examining-remote-branches">Examining branches from a remote repository</a></span></dt><dt><span class="section"><a href="#how-git-stores-references">Naming branches, tags, and other references</a></span></dt><dt><span class="section"><a href="#Updating-a-repository-with-git-fetch">Updating a repository with git-fetch</a></span></dt><dt><span class="section"><a href="#fetching-branches">Fetching branches from other repositories</a></span></dt></dl></dd><dt><span class="chapter"><a href="#exploring-git-history">2. Exploring git history</a></span></dt><dd><dl><dt><span class="section"><a href="#using-bisect">How to use bisect to find a regression</a></span></dt><dt><span class="section"><a href="#naming-commits">Naming commits</a></span></dt><dt><span class="section"><a href="#creating-tags">Creating tags</a></span></dt><dt><span class="section"><a href="#browsing-revisions">Browsing revisions</a></span></dt><dt><span class="section"><a href="#generating-diffs">Generating diffs</a></span></dt><dt><span class="section"><a href="#viewing-old-file-versions">Viewing old file versions</a></span></dt><dt><span class="section"><a href="#history-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#counting-commits-on-a-branch">Counting the number of commits on a branch</a></span></dt><dt><span class="section"><a href="#checking-for-equal-branches">Check whether two branches point at the same history</a></span></dt><dt><span class="section"><a href="#finding-tagged-descendants">Find first tagged version including a given fix</a></span></dt><dt><span class="section"><a href="#showing-commits-unique-to-a-branch">Showing commits unique to a given branch</a></span></dt><dt><span class="section"><a href="#making-a-release">Creating a changelog and tarball for a software release</a></span></dt><dt><span class="section"><a href="#Finding-comments-with-given-content">Finding commits referencing a file with given content</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#Developing-with-git">3. Developing with git</a></span></dt><dd><dl><dt><span class="section"><a href="#telling-git-your-name">Telling git your name</a></span></dt><dt><span class="section"><a href="#creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#how-to-make-a-commit">How to make a commit</a></span></dt><dt><span class="section"><a href="#creating-good-commit-messages">Creating good commit messages</a></span></dt><dt><span class="section"><a href="#ignoring-files">Ignoring files</a></span></dt><dt><span class="section"><a href="#how-to-merge">How to merge</a></span></dt><dt><span class="section"><a href="#resolving-a-merge">Resolving a merge</a></span></dt><dd><dl><dt><span class="section"><a href="#conflict-resolution">Getting conflict-resolution help during a merge</a></span></dt></dl></dd><dt><span class="section"><a href="#undoing-a-merge">Undoing a merge</a></span></dt><dt><span class="section"><a href="#fast-forwards">Fast-forward merges</a></span></dt><dt><span class="section"><a href="#fixing-mistakes">Fixing mistakes</a></span></dt><dd><dl><dt><span class="section"><a href="#reverting-a-commit">Fixing a mistake with a new commit</a></span></dt><dt><span class="section"><a href="#fixing-a-mistake-by-rewriting-history">Fixing a mistake by rewriting history</a></span></dt><dt><span class="section"><a href="#checkout-of-path">Checking out an old version of a file</a></span></dt><dt><span class="section"><a href="#interrupted-work">Temporarily setting aside work in progress</a></span></dt></dl></dd><dt><span class="section"><a href="#ensuring-good-performance">Ensuring good performance</a></span></dt><dt><span class="section"><a href="#ensuring-reliability">Ensuring reliability</a></span></dt><dd><dl><dt><span class="section"><a href="#checking-for-corruption">Checking the repository for corruption</a></span></dt><dt><span class="section"><a href="#recovering-lost-changes">Recovering lost changes</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#sharing-development">4. Sharing development with others</a></span></dt><dd><dl><dt><span class="section"><a href="#getting-updates-with-git-pull">Getting updates with git-pull</a></span></dt><dt><span class="section"><a href="#submitting-patches">Submitting patches to a project</a></span></dt><dt><span class="section"><a href="#importing-patches">Importing patches to a project</a></span></dt><dt><span class="section"><a href="#public-repositories">Public git repositories</a></span></dt><dd><dl><dt><span class="section"><a href="#setting-up-a-public-repository">Setting up a public repository</a></span></dt><dt><span class="section"><a href="#exporting-via-git">Exporting a git repository via the git protocol</a></span></dt><dt><span class="section"><a href="#exporting-via-http">Exporting a git repository via http</a></span></dt><dt><span class="section"><a href="#pushing-changes-to-a-public-repository">Pushing changes to a public repository</a></span></dt><dt><span class="section"><a href="#forcing-push">What to do when a push fails</a></span></dt><dt><span class="section"><a href="#setting-up-a-shared-repository">Setting up a shared repository</a></span></dt><dt><span class="section"><a href="#setting-up-gitweb">Allowing web browsing of a repository</a></span></dt></dl></dd><dt><span class="section"><a href="#sharing-development-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#maintaining-topic-branches">Maintaining topic branches for a Linux subsystem maintainer</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#cleaning-up-history">5. Rewriting history and maintaining patch series</a></span></dt><dd><dl><dt><span class="section"><a href="#patch-series">Creating the perfect patch series</a></span></dt><dt><span class="section"><a href="#using-git-rebase">Keeping a patch series up to date using git-rebase</a></span></dt><dt><span class="section"><a href="#rewriting-one-commit">Rewriting a single commit</a></span></dt><dt><span class="section"><a href="#reordering-patch-series">Reordering or selecting from a patch series</a></span></dt><dt><span class="section"><a href="#patch-series-tools">Other tools</a></span></dt><dt><span class="section"><a href="#problems-with-rewriting-history">Problems with rewriting history</a></span></dt><dt><span class="section"><a href="#bisect-merges">Why bisecting merge commits can be harder than bisecting linear history</a></span></dt></dl></dd><dt><span class="chapter"><a href="#advanced-branch-management">6. Advanced branch management</a></span></dt><dd><dl><dt><span class="section"><a href="#fetching-individual-branches">Fetching individual branches</a></span></dt><dt><span class="section"><a href="#fetch-fast-forwards">git fetch and fast-forwards</a></span></dt><dt><span class="section"><a href="#forcing-fetch">Forcing git-fetch to do non-fast-forward updates</a></span></dt><dt><span class="section"><a href="#remote-branch-configuration">Configuring remote branches</a></span></dt></dl></dd><dt><span class="chapter"><a href="#git-concepts">7. Git concepts</a></span></dt><dd><dl><dt><span class="section"><a href="#the-object-database">The Object Database</a></span></dt><dd><dl><dt><span class="section"><a href="#commit-object">Commit Object</a></span></dt><dt><span class="section"><a href="#tree-object">Tree Object</a></span></dt><dt><span class="section"><a href="#blob-object">Blob Object</a></span></dt><dt><span class="section"><a href="#trust">Trust</a></span></dt><dt><span class="section"><a href="#tag-object">Tag Object</a></span></dt><dt><span class="section"><a href="#pack-files">How git stores objects efficiently: pack files</a></span></dt><dt><span class="section"><a href="#dangling-objects">Dangling objects</a></span></dt><dt><span class="section"><a href="#recovering-from-repository-corruption">Recovering from repository corruption</a></span></dt></dl></dd><dt><span class="section"><a href="#the-index">The index</a></span></dt></dl></dd><dt><span class="chapter"><a href="#submodules">8. Submodules</a></span></dt><dd><dl><dt><span class="section"><a href="#_pitfalls_with_submodules">Pitfalls with submodules</a></span></dt></dl></dd><dt><span class="chapter"><a href="#low-level-operations">9. Low-level git operations</a></span></dt><dd><dl><dt><span class="section"><a href="#object-manipulation">Object access and manipulation</a></span></dt><dt><span class="section"><a href="#the-workflow">The Workflow</a></span></dt><dd><dl><dt><span class="section"><a href="#working-directory-to-index">working directory -&gt; index</a></span></dt><dt><span class="section"><a href="#index-to-object-database">index -&gt; object database</a></span></dt><dt><span class="section"><a href="#object-database-to-index">object database -&gt; index</a></span></dt><dt><span class="section"><a href="#index-to-working-directory">index -&gt; working directory</a></span></dt><dt><span class="section"><a href="#tying-it-all-together">Tying it all together</a></span></dt></dl></dd><dt><span class="section"><a href="#examining-the-data">Examining the data</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees">Merging multiple trees</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees-2">Merging multiple trees, continued</a></span></dt></dl></dd><dt><span class="chapter"><a href="#hacking-git">10. Hacking git</a></span></dt><dd><dl><dt><span class="section"><a href="#object-details">Object storage format</a></span></dt><dt><span class="section"><a href="#birdview-on-the-source-code">A birds-eye view of Git's source code</a></span></dt></dl></dd><dt><span class="chapter"><a href="#glossary">11. GIT Glossary</a></span></dt><dt><span class="appendix"><a href="#git-quick-start">A. Git Quick Reference</a></span></dt><dd><dl><dt><span class="section"><a href="#quick-creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#managing-branches">Managing branches</a></span></dt><dt><span class="section"><a href="#exploring-history">Exploring history</a></span></dt><dt><span class="section"><a href="#making-changes">Making changes</a></span></dt><dt><span class="section"><a href="#merging">Merging</a></span></dt><dt><span class="section"><a href="#sharing-your-changes">Sharing your changes</a></span></dt><dt><span class="section"><a href="#repository-maintenance">Repository maintenance</a></span></dt></dl></dd><dt><span class="appendix"><a href="#todo">B. Notes and todo list for this manual</a></span></dt></dl></div><div class="preface" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id482845"></a>Preface</h2></div></div></div><p>Git is a fast distributed revision control system.</p><p>This manual is designed to be readable by someone with basic UNIX
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Git User's Manual (for version 1.5.3 or newer)</title><link rel="stylesheet" href="docbook-xsl.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="id326460"></a>Git User's Manual (for version 1.5.3 or newer)</h1></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="#id358941">Preface</a></span></dt><dt><span class="chapter"><a href="#repositories-and-branches">1. Repositories and Branches</a></span></dt><dd><dl><dt><span class="section"><a href="#how-to-get-a-git-repository">How to get a git repository</a></span></dt><dt><span class="section"><a href="#how-to-check-out">How to check out a different version of a project</a></span></dt><dt><span class="section"><a href="#understanding-commits">Understanding History: Commits</a></span></dt><dd><dl><dt><span class="section"><a href="#understanding-reachability">Understanding history: commits, parents, and reachability</a></span></dt><dt><span class="section"><a href="#history-diagrams">Understanding history: History diagrams</a></span></dt><dt><span class="section"><a href="#what-is-a-branch">Understanding history: What is a branch?</a></span></dt></dl></dd><dt><span class="section"><a href="#manipulating-branches">Manipulating branches</a></span></dt><dt><span class="section"><a href="#detached-head">Examining an old version without creating a new branch</a></span></dt><dt><span class="section"><a href="#examining-remote-branches">Examining branches from a remote repository</a></span></dt><dt><span class="section"><a href="#how-git-stores-references">Naming branches, tags, and other references</a></span></dt><dt><span class="section"><a href="#Updating-a-repository-with-git-fetch">Updating a repository with git-fetch</a></span></dt><dt><span class="section"><a href="#fetching-branches">Fetching branches from other repositories</a></span></dt></dl></dd><dt><span class="chapter"><a href="#exploring-git-history">2. Exploring git history</a></span></dt><dd><dl><dt><span class="section"><a href="#using-bisect">How to use bisect to find a regression</a></span></dt><dt><span class="section"><a href="#naming-commits">Naming commits</a></span></dt><dt><span class="section"><a href="#creating-tags">Creating tags</a></span></dt><dt><span class="section"><a href="#browsing-revisions">Browsing revisions</a></span></dt><dt><span class="section"><a href="#generating-diffs">Generating diffs</a></span></dt><dt><span class="section"><a href="#viewing-old-file-versions">Viewing old file versions</a></span></dt><dt><span class="section"><a href="#history-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#counting-commits-on-a-branch">Counting the number of commits on a branch</a></span></dt><dt><span class="section"><a href="#checking-for-equal-branches">Check whether two branches point at the same history</a></span></dt><dt><span class="section"><a href="#finding-tagged-descendants">Find first tagged version including a given fix</a></span></dt><dt><span class="section"><a href="#showing-commits-unique-to-a-branch">Showing commits unique to a given branch</a></span></dt><dt><span class="section"><a href="#making-a-release">Creating a changelog and tarball for a software release</a></span></dt><dt><span class="section"><a href="#Finding-comments-with-given-content">Finding commits referencing a file with given content</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#Developing-with-git">3. Developing with git</a></span></dt><dd><dl><dt><span class="section"><a href="#telling-git-your-name">Telling git your name</a></span></dt><dt><span class="section"><a href="#creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#how-to-make-a-commit">How to make a commit</a></span></dt><dt><span class="section"><a href="#creating-good-commit-messages">Creating good commit messages</a></span></dt><dt><span class="section"><a href="#ignoring-files">Ignoring files</a></span></dt><dt><span class="section"><a href="#how-to-merge">How to merge</a></span></dt><dt><span class="section"><a href="#resolving-a-merge">Resolving a merge</a></span></dt><dd><dl><dt><span class="section"><a href="#conflict-resolution">Getting conflict-resolution help during a merge</a></span></dt></dl></dd><dt><span class="section"><a href="#undoing-a-merge">Undoing a merge</a></span></dt><dt><span class="section"><a href="#fast-forwards">Fast-forward merges</a></span></dt><dt><span class="section"><a href="#fixing-mistakes">Fixing mistakes</a></span></dt><dd><dl><dt><span class="section"><a href="#reverting-a-commit">Fixing a mistake with a new commit</a></span></dt><dt><span class="section"><a href="#fixing-a-mistake-by-rewriting-history">Fixing a mistake by rewriting history</a></span></dt><dt><span class="section"><a href="#checkout-of-path">Checking out an old version of a file</a></span></dt><dt><span class="section"><a href="#interrupted-work">Temporarily setting aside work in progress</a></span></dt></dl></dd><dt><span class="section"><a href="#ensuring-good-performance">Ensuring good performance</a></span></dt><dt><span class="section"><a href="#ensuring-reliability">Ensuring reliability</a></span></dt><dd><dl><dt><span class="section"><a href="#checking-for-corruption">Checking the repository for corruption</a></span></dt><dt><span class="section"><a href="#recovering-lost-changes">Recovering lost changes</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#sharing-development">4. Sharing development with others</a></span></dt><dd><dl><dt><span class="section"><a href="#getting-updates-with-git-pull">Getting updates with git-pull</a></span></dt><dt><span class="section"><a href="#submitting-patches">Submitting patches to a project</a></span></dt><dt><span class="section"><a href="#importing-patches">Importing patches to a project</a></span></dt><dt><span class="section"><a href="#public-repositories">Public git repositories</a></span></dt><dd><dl><dt><span class="section"><a href="#setting-up-a-public-repository">Setting up a public repository</a></span></dt><dt><span class="section"><a href="#exporting-via-git">Exporting a git repository via the git protocol</a></span></dt><dt><span class="section"><a href="#exporting-via-http">Exporting a git repository via http</a></span></dt><dt><span class="section"><a href="#pushing-changes-to-a-public-repository">Pushing changes to a public repository</a></span></dt><dt><span class="section"><a href="#forcing-push">What to do when a push fails</a></span></dt><dt><span class="section"><a href="#setting-up-a-shared-repository">Setting up a shared repository</a></span></dt><dt><span class="section"><a href="#setting-up-gitweb">Allowing web browsing of a repository</a></span></dt></dl></dd><dt><span class="section"><a href="#sharing-development-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#maintaining-topic-branches">Maintaining topic branches for a Linux subsystem maintainer</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#cleaning-up-history">5. Rewriting history and maintaining patch series</a></span></dt><dd><dl><dt><span class="section"><a href="#patch-series">Creating the perfect patch series</a></span></dt><dt><span class="section"><a href="#using-git-rebase">Keeping a patch series up to date using git-rebase</a></span></dt><dt><span class="section"><a href="#rewriting-one-commit">Rewriting a single commit</a></span></dt><dt><span class="section"><a href="#reordering-patch-series">Reordering or selecting from a patch series</a></span></dt><dt><span class="section"><a href="#patch-series-tools">Other tools</a></span></dt><dt><span class="section"><a href="#problems-with-rewriting-history">Problems with rewriting history</a></span></dt><dt><span class="section"><a href="#bisect-merges">Why bisecting merge commits can be harder than bisecting linear history</a></span></dt></dl></dd><dt><span class="chapter"><a href="#advanced-branch-management">6. Advanced branch management</a></span></dt><dd><dl><dt><span class="section"><a href="#fetching-individual-branches">Fetching individual branches</a></span></dt><dt><span class="section"><a href="#fetch-fast-forwards">git fetch and fast-forwards</a></span></dt><dt><span class="section"><a href="#forcing-fetch">Forcing git-fetch to do non-fast-forward updates</a></span></dt><dt><span class="section"><a href="#remote-branch-configuration">Configuring remote branches</a></span></dt></dl></dd><dt><span class="chapter"><a href="#git-concepts">7. Git concepts</a></span></dt><dd><dl><dt><span class="section"><a href="#the-object-database">The Object Database</a></span></dt><dd><dl><dt><span class="section"><a href="#commit-object">Commit Object</a></span></dt><dt><span class="section"><a href="#tree-object">Tree Object</a></span></dt><dt><span class="section"><a href="#blob-object">Blob Object</a></span></dt><dt><span class="section"><a href="#trust">Trust</a></span></dt><dt><span class="section"><a href="#tag-object">Tag Object</a></span></dt><dt><span class="section"><a href="#pack-files">How git stores objects efficiently: pack files</a></span></dt><dt><span class="section"><a href="#dangling-objects">Dangling objects</a></span></dt><dt><span class="section"><a href="#recovering-from-repository-corruption">Recovering from repository corruption</a></span></dt></dl></dd><dt><span class="section"><a href="#the-index">The index</a></span></dt></dl></dd><dt><span class="chapter"><a href="#submodules">8. Submodules</a></span></dt><dd><dl><dt><span class="section"><a href="#_pitfalls_with_submodules">Pitfalls with submodules</a></span></dt></dl></dd><dt><span class="chapter"><a href="#low-level-operations">9. Low-level git operations</a></span></dt><dd><dl><dt><span class="section"><a href="#object-manipulation">Object access and manipulation</a></span></dt><dt><span class="section"><a href="#the-workflow">The Workflow</a></span></dt><dd><dl><dt><span class="section"><a href="#working-directory-to-index">working directory -&gt; index</a></span></dt><dt><span class="section"><a href="#index-to-object-database">index -&gt; object database</a></span></dt><dt><span class="section"><a href="#object-database-to-index">object database -&gt; index</a></span></dt><dt><span class="section"><a href="#index-to-working-directory">index -&gt; working directory</a></span></dt><dt><span class="section"><a href="#tying-it-all-together">Tying it all together</a></span></dt></dl></dd><dt><span class="section"><a href="#examining-the-data">Examining the data</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees">Merging multiple trees</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees-2">Merging multiple trees, continued</a></span></dt></dl></dd><dt><span class="chapter"><a href="#hacking-git">10. Hacking git</a></span></dt><dd><dl><dt><span class="section"><a href="#object-details">Object storage format</a></span></dt><dt><span class="section"><a href="#birdview-on-the-source-code">A birds-eye view of Git's source code</a></span></dt></dl></dd><dt><span class="chapter"><a href="#glossary">11. GIT Glossary</a></span></dt><dt><span class="appendix"><a href="#git-quick-start">A. Git Quick Reference</a></span></dt><dd><dl><dt><span class="section"><a href="#quick-creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#managing-branches">Managing branches</a></span></dt><dt><span class="section"><a href="#exploring-history">Exploring history</a></span></dt><dt><span class="section"><a href="#making-changes">Making changes</a></span></dt><dt><span class="section"><a href="#merging">Merging</a></span></dt><dt><span class="section"><a href="#sharing-your-changes">Sharing your changes</a></span></dt><dt><span class="section"><a href="#repository-maintenance">Repository maintenance</a></span></dt></dl></dd><dt><span class="appendix"><a href="#todo">B. Notes and todo list for this manual</a></span></dt></dl></div><div class="preface" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id358941"></a>Preface</h2></div></div></div><p>Git is a fast distributed revision control system.</p><p>This manual is designed to be readable by someone with basic UNIX
 command-line skills, but no previous knowledge of git.</p><p><a class="xref" href="#repositories-and-branches" title="Chapter 1. Repositories and Branches">Chapter 1, <i>Repositories and Branches</i></a> and <a class="xref" href="#exploring-git-history" title="Chapter 2. Exploring git history">Chapter 2, <i>Exploring git history</i></a> explain how
 to fetch and study a project using git—read these chapters to learn how
 to build and test a particular version of a software project, search for
@@ -255,7 +255,7 @@ point is just a suggestion, and you're free to try a different
 version if you think it would be a good idea.  For example,
 occasionally you may land on a commit that broke something unrelated;
 run</p><div class="literallayout"><p>$ git bisect visualize</p></div><p>which will run gitk and label the commit it chose with a marker that
-says "bisect".  Chose a safe-looking commit nearby, note its commit
+says "bisect".  Choose a safe-looking commit nearby, note its commit
 id, and check it out with:</p><div class="literallayout"><p>$ git reset --hard fb47ddb2db...</p></div><p>then test, run "bisect good" or "bisect bad" as appropriate, and
 continue.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="naming-commits"></a>Naming commits</h2></div></div></div><p>We have seen several ways of naming commits already:</p><div class="itemizedlist"><ul type="disc"><li>
 40-hexdigit object name
@@ -775,8 +775,8 @@ way to publish a work-in-progress patch series, and it is an acceptable
 compromise as long as you warn other developers that this is how you
 intend to manage the branch.</p><p>It's also possible for a push to fail in this way when other people have
 the right to push to the same repository.  In that case, the correct
-solution is to retry the push after first updating your work by either a
-pull or a fetch followed by a rebase; see the
+solution is to retry the push after first updating your work: either by a
+pull, or by a fetch followed by a rebase; see the
 <a class="link" href="#setting-up-a-shared-repository" title="Setting up a shared repository">next section</a> and
 <a class="ulink" href="gitcvs-migration.html" target="_top">gitcvs-migration(7)</a> for more.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="setting-up-a-shared-repository"></a>Setting up a shared repository</h3></div></div></div><p>Another way to collaborate is by using a model similar to that
 commonly used in CVS, where several developers with special rights
@@ -1162,7 +1162,7 @@ SHA1 calculation.)</p><p>There are four different types of objects: "blob", "tre
 "tag".</p><div class="itemizedlist"><ul type="disc"><li>
 A <a class="link" href="#def_blob_object">"blob" object</a> is used to store file data.
 </li><li>
-A <a class="link" href="#def_tree_object">"tree" object</a> is an object that ties one or more
+A <a class="link" href="#def_tree_object">"tree" object</a> ties one or more
   "blob" objects into a directory structure. In addition, a tree object
   can refer to other tree objects, thus creating a directory hierarchy.
 </li><li>
@@ -1272,7 +1272,7 @@ sending out a single email that tells the people the name (SHA1 hash)
 of the top commit, and digitally sign that email using something
 like GPG/PGP.</p><p>To assist in this, git also provides the tag object…</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="tag-object"></a>Tag Object</h3></div></div></div><p>A tag object contains an object, object type, tag name, the name of the
 person ("tagger") who created the tag, and a message, which may contain
-a signature, as can be seen using the <a class="ulink" href="git-cat-file.html" target="_top">git-cat-file(1)</a>:</p><div class="literallayout"><p>$ git cat-file tag v1.5.0<br>
+a signature, as can be seen using <a class="ulink" href="git-cat-file.html" target="_top">git-cat-file(1)</a>:</p><div class="literallayout"><p>$ git cat-file tag v1.5.0<br>
 object 437b1b20df4b356c9342dac8d38849f24ef44f27<br>
 type commit<br>
 tag v1.5.0<br>
@@ -1722,11 +1722,11 @@ $ git merge-file hello.c~2 hello.c~1 hello.c~3</p></div><p>This would leave
 with conflict markers if there are conflicts.  After verifying
 the merge result makes sense, you can tell git what the final
 merge result for this file is by:</p><div class="literallayout"><p>$ mv -f hello.c~2 hello.c<br>
-$ git update-index hello.c</p></div><p>When a path is in unmerged state, running <code class="literal">git-update-index</code> for
+$ git update-index hello.c</p></div><p>When a path is in the "unmerged" state, running <code class="literal">git-update-index</code> for
 that path tells git to mark the path resolved.</p><p>The above is the description of a git merge at the lowest level,
 to help you understand what conceptually happens under the hood.
-In practice, nobody, not even git itself, uses three <code class="literal">git-cat-file</code>
-for this.  There is <code class="literal">git-merge-index</code> program that extracts the
+In practice, nobody, not even git itself, runs <code class="literal">git-cat-file</code> three times
+for this.  There is <code class="literal">git-merge-index</code> program that extracts the
 stages to temporary files and calls a "merge" script on it:</p><div class="literallayout"><p>$ git merge-index git-merge-one-file hello.c</p></div><p>and that is what higher level <code class="literal">git-merge -s resolve</code> is implemented with.</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="hacking-git"></a>Chapter 10. Hacking git</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#object-details">Object storage format</a></span></dt><dt><span class="section"><a href="#birdview-on-the-source-code">A birds-eye view of Git's source code</a></span></dt></dl></div><p>This chapter covers internal details of the git implementation which
 probably only git developers need to understand.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="object-details"></a>Object storage format</h2></div></div></div><p>All objects have a statically determined "type" which identifies the
 format of the object (i.e. how it is used, and how it can refer to other
@@ -1753,7 +1753,7 @@ source code.  This section gives you a little guidance to show where to
 start.</p><p>A good place to start is with the contents of the initial commit, with:</p><div class="literallayout"><p>$ git checkout e83c5163</p></div><p>The initial revision lays the foundation for almost everything git has
 today, but is small enough to read in one sitting.</p><p>Note that terminology has changed since that revision.  For example, the
 README in that revision uses the word "changeset" to describe what we
-now call a <a class="link" href="#def_commit_object">commit</a>.</p><p>Also, we do not call it "cache" any more, but "index", however, the
+now call a <a class="link" href="#def_commit_object">commit</a>.</p><p>Also, we do not call it "cache" any more, but rather "index"; however, the
 file is still called <code class="literal">cache.h</code>.  Remark: Not much reason to change it now,
 especially since there is no good single name for it anyway, because it is
 basically <span class="emphasis"><em>the</em></span> header file which is included by <span class="emphasis"><em>all</em></span> of Git's C sources.</p><p>If you grasp the ideas in that initial commit, you should check out a
index 01c1af6b6a69253dd2460962fdfccb2d3bc50237..92d400753d192b4b6df256fc3b872d775ecaacd4 100644 (file)
@@ -518,7 +518,7 @@ $ git bisect visualize
 -------------------------------------------------
 
 which will run gitk and label the commit it chose with a marker that
-says "bisect".  Chose a safe-looking commit nearby, note its commit
+says "bisect".  Choose a safe-looking commit nearby, note its commit
 id, and check it out with:
 
 -------------------------------------------------
@@ -1988,8 +1988,8 @@ intend to manage the branch.
 
 It's also possible for a push to fail in this way when other people have
 the right to push to the same repository.  In that case, the correct
-solution is to retry the push after first updating your work by either a
-pull or a fetch followed by a rebase; see the
+solution is to retry the push after first updating your work: either by a
+pull, or by a fetch followed by a rebase; see the
 <<setting-up-a-shared-repository,next section>> and
 linkgit:gitcvs-migration[7] for more.
 
@@ -2861,7 +2861,7 @@ There are four different types of objects: "blob", "tree", "commit", and
 "tag".
 
 - A <<def_blob_object,"blob" object>> is used to store file data.
-- A <<def_tree_object,"tree" object>> is an object that ties one or more
+- A <<def_tree_object,"tree" object>> ties one or more
   "blob" objects into a directory structure. In addition, a tree object
   can refer to other tree objects, thus creating a directory hierarchy.
 - A <<def_commit_object,"commit" object>> ties such directory hierarchies
@@ -3036,7 +3036,7 @@ Tag Object
 
 A tag object contains an object, object type, tag name, the name of the
 person ("tagger") who created the tag, and a message, which may contain
-a signature, as can be seen using the linkgit:git-cat-file[1]:
+a signature, as can be seen using linkgit:git-cat-file[1]:
 
 ------------------------------------------------
 $ git cat-file tag v1.5.0
@@ -3986,13 +3986,13 @@ $ mv -f hello.c~2 hello.c
 $ git update-index hello.c
 -------------------------------------------------
 
-When a path is in unmerged state, running `git-update-index` for
+When a path is in the "unmerged" state, running `git-update-index` for
 that path tells git to mark the path resolved.
 
 The above is the description of a git merge at the lowest level,
 to help you understand what conceptually happens under the hood.
-In practice, nobody, not even git itself, uses three `git-cat-file`
-for this.  There is `git-merge-index` program that extracts the
+In practice, nobody, not even git itself, runs `git-cat-file` three times
+for this.  There is `git-merge-index` program that extracts the
 stages to temporary files and calls a "merge" script on it:
 
 -------------------------------------------------
@@ -4061,7 +4061,7 @@ Note that terminology has changed since that revision.  For example, the
 README in that revision uses the word "changeset" to describe what we
 now call a <<def_commit_object,commit>>.
 
-Also, we do not call it "cache" any more, but "index", however, the
+Also, we do not call it "cache" any more, but rather "index"; however, the
 file is still called `cache.h`.  Remark: Not much reason to change it now,
 especially since there is no good single name for it anyway, because it is
 basically _the_ header file which is included by _all_ of Git's C sources.