Autogenerated HTML docs for v1.6.0-rc2-22-g71b9
authorJunio C Hamano <junio@hera.kernel.org>
Sun, 10 Aug 2008 03:55:58 +0000 (03:55 +0000)
committerJunio C Hamano <junio@hera.kernel.org>
Sun, 10 Aug 2008 03:55:58 +0000 (03:55 +0000)
18 files changed:
RelNotes-1.6.0.txt
git-commit-tree.html
git-commit-tree.txt
git-fetch.html
git-filter-branch.html
git-filter-branch.txt
git-pull.html
git-push.html
git-push.txt
git-rerere.html
git-rerere.txt
git-rm.html
git-rm.txt
git-svn.html
git-svn.txt
pull-fetch-param.txt
user-manual.html
user-manual.txt

index e524d80fbff33a9403b3539cbaedefecf2b1bd9e..8afb5b253160a9bbd3effeedf97f29e8e40625da 100644 (file)
@@ -5,7 +5,7 @@ User visible changes
 --------------------
 
 With the default Makefile settings, most of the programs are now
-installed outside your $PATH, except for "git", "gitk", "git-gui" and
+installed outside your $PATH, except for "git", "gitk" and
 some server side programs that need to be accessible for technical
 reasons.  Invoking a git subcommand as "git-xyzzy" from the command
 line has been deprecated since early 2006 (and officially announced in
@@ -186,7 +186,7 @@ Updates since v1.5.6
 
 * fast-import and fast-export learned to export and import gitlinks.
 
-* "gitk" left background process behind after begin asked to dig very deep
+* "gitk" left background process behind after being asked to dig very deep
   history and the user killed the UI; the process is killed when the UI goes
   away now.
 
@@ -248,6 +248,6 @@ this release, unless otherwise noted.
 
 ---
 exec >/var/tmp/1
-O=v1.6.0-rc1-113-gf44bc33
+O=v1.6.0-rc2-21-g0bb3a0b
 echo O=$(git describe refs/heads/master)
 git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint
index 1f832dfb7724a31f1e7b3918476f65b4732cd7a5..da3e1fd5d329a584fe2c7f964fc822bdbfca16f5 100644 (file)
@@ -327,11 +327,11 @@ git-commit-tree(1) Manual Page
 <div class="para"><p>This is usually not what an end user wants to run directly.  See\r
 <a href="git-commit.html">git-commit(1)</a> instead.</p></div>\r
 <div class="para"><p>Creates a new commit object based on the provided tree object and\r
-emits the new commit object id on stdout. If no parent is given then\r
-it is considered to be an initial tree.</p></div>\r
-<div class="para"><p>A commit object usually has 1 parent (a commit after a change) or up\r
-to 16 parents.  More than one parent represents a merge of branches\r
-that led to them.</p></div>\r
+emits the new commit object id on stdout.</p></div>\r
+<div class="para"><p>A commit object may have any number of parents. With exactly one\r
+parent, it is an ordinary commit. Having more than one parent makes\r
+the commit a merge between several lines of history. Initial (root)\r
+commits have no parents.</p></div>\r
 <div class="para"><p>While a tree represents a particular directory state of a working\r
 directory, a commit represents that state in "time", and explains how\r
 to get there.</p></div>\r
@@ -525,7 +525,7 @@ reversible operation.</p></div>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-07-06 05:16:39 UTC\r
+Last updated 2008-08-10 03:55:18 UTC\r
 </div>\r
 </div>\r
 </body>\r
index feec58400b64c65c8f96f2d1834016455c89829e..92ab3ab4a80a71808ad19a80c82ecb6d032bdea9 100644 (file)
@@ -16,12 +16,12 @@ This is usually not what an end user wants to run directly.  See
 linkgit:git-commit[1] instead.
 
 Creates a new commit object based on the provided tree object and
-emits the new commit object id on stdout. If no parent is given then
-it is considered to be an initial tree.
+emits the new commit object id on stdout.
 
-A commit object usually has 1 parent (a commit after a change) or up
-to 16 parents.  More than one parent represents a merge of branches
-that led to them.
+A commit object may have any number of parents. With exactly one
+parent, it is an ordinary commit. Having more than one parent makes
+the commit a merge between several lines of history. Initial (root)
+commits have no parents.
 
 While a tree represents a particular directory state of a working
 directory, a commit represents that state in "time", and explains how
index 4cd3ad6c42f5c5e05289ed383d434ec8f5a83d31..10a5b6a0a5ea06db53c7d90cf1ee088721a9f603 100644 (file)
@@ -485,7 +485,7 @@ branches you are not interested in, you will not get them.</p></div>
 <dd>\r
 <p>\r
         The canonical format of a &lt;refspec&gt; parameter is\r
-        <tt><tt>?&lt;src&gt;:&lt;dst&gt;</tt>; that is, an optional plus <tt></tt></tt>, followed\r
+        <tt>+?&lt;src&gt;:&lt;dst&gt;</tt>; that is, an optional plus <tt>&#43;</tt>, followed\r
         by the source ref, followed by a colon <tt>:</tt>, followed by\r
         the destination ref.\r
 </p>\r
@@ -781,7 +781,7 @@ Junio C Hamano &lt;gitster@pobox.com&gt;</p></div>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-07-22 09:19:09 UTC\r
+Last updated 2008-08-10 03:55:18 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 799e370520d0efc316d18f2dad3f4241304f6c97..1ef716e92aeb605b9f6fe23ec6b6313c8da39bcf 100644 (file)
@@ -326,7 +326,7 @@ git-filter-branch(1) Manual Page
         [--msg-filter &lt;command&gt;] [--commit-filter &lt;command&gt;]\r
         [--tag-name-filter &lt;command&gt;] [--subdirectory-filter &lt;directory&gt;]\r
         [--original &lt;namespace&gt;] [-d &lt;directory&gt;] [-f | --force]\r
-        [&lt;rev-list options&gt;&#8230;]</div></div>\r
+        [--] [&lt;rev-list options&gt;&#8230;]</div></div>\r
 </div>\r
 <h2 id="_description">DESCRIPTION</h2>\r
 <div class="sectionbody">\r
@@ -528,10 +528,10 @@ to other tags will be rewritten to point to the underlying commit.</p></div>
 </dt>\r
 <dd>\r
 <p>\r
-        When options are given after the new branch name, they will\r
-        be passed to <em>git-rev-list</em>.  Only commits in the resulting\r
-        output will be filtered, although the filtered commits can still\r
-        reference parents which are outside of that set.\r
+        Arguments for <em>git-rev-list</em>.  All positive refs included by\r
+        these options are rewritten.  You may also specify options\r
+        such as <em>--all</em>, but you must use <em>--</em> to separate them from\r
+        the <em>git-filter-branch</em> options.\r
 </p>\r
 </dd>\r
 </dl></div>\r
@@ -553,6 +553,15 @@ Thus you may instead want to use <tt>rm -f filename</tt> as the script.</p></div
 <pre><tt>git filter-branch --index-filter 'git rm --cached filename' HEAD</tt></pre>\r
 </div></div>\r
 <div class="para"><p>Now, you will get the rewritten history saved in HEAD.</p></div>\r
+<div class="para"><p>To rewrite the repository to look as if <tt>foodir/</tt> had been its project\r
+root, and discard all other history:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>git filter-branch --subdirectory-filter foodir -- --all</tt></pre>\r
+</div></div>\r
+<div class="para"><p>Thus you can, e.g., turn a library subdirectory into a repository of\r
+its own.  Note the <tt>--</tt> that separates <em>filter-branch</em> options from\r
+revision options, and the <tt>--all</tt> to rewrite all branches and tags.</p></div>\r
 <div class="para"><p>To set a commit (which typically is at the tip of another\r
 history) to be the parent of the current initial commit, in\r
 order to paste the other history behind the current history:</p></div>\r
@@ -665,7 +674,7 @@ and 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-31 22:10:18 UTC\r
+Last updated 2008-08-10 03:55:19 UTC\r
 </div>\r
 </div>\r
 </body>\r
index a518ba6072127afce1b117a6c70022415979d079..b0e710d5f9c05eb86ce3ccc4e1aa4a7868f3abff 100644 (file)
@@ -13,7 +13,7 @@ SYNOPSIS
        [--msg-filter <command>] [--commit-filter <command>]
        [--tag-name-filter <command>] [--subdirectory-filter <directory>]
        [--original <namespace>] [-d <directory>] [-f | --force]
-       [<rev-list options>...]
+       [--] [<rev-list options>...]
 
 DESCRIPTION
 -----------
@@ -168,10 +168,10 @@ to other tags will be rewritten to point to the underlying commit.
        'refs/original/', unless forced.
 
 <rev-list options>...::
-       When options are given after the new branch name, they will
-       be passed to 'git-rev-list'.  Only commits in the resulting
-       output will be filtered, although the filtered commits can still
-       reference parents which are outside of that set.
+       Arguments for 'git-rev-list'.  All positive refs included by
+       these options are rewritten.  You may also specify options
+       such as '--all', but you must use '--' to separate them from
+       the 'git-filter-branch' options.
 
 
 Examples
@@ -196,6 +196,17 @@ git filter-branch --index-filter 'git rm --cached filename' HEAD
 
 Now, you will get the rewritten history saved in HEAD.
 
+To rewrite the repository to look as if `foodir/` had been its project
+root, and discard all other history:
+
+-------------------------------------------------------
+git filter-branch --subdirectory-filter foodir -- --all
+-------------------------------------------------------
+
+Thus you can, e.g., turn a library subdirectory into a repository of
+its own.  Note the `\--` that separates 'filter-branch' options from
+revision options, and the `\--all` to rewrite all branches and tags.
+
 To set a commit (which typically is at the tip of another
 history) to be the parent of the current initial commit, in
 order to paste the other history behind the current history:
index c9c3fb5dc04b804359754fa50f6e7832b9ef1db8..c5f610578618180a389c538207f7bb2dd5084266 100644 (file)
@@ -639,7 +639,7 @@ unless you have read <a href="git-rebase.html">git-rebase(1)</a> carefully.</td>
 <dd>\r
 <p>\r
         The canonical format of a &lt;refspec&gt; parameter is\r
-        <tt><tt>?&lt;src&gt;:&lt;dst&gt;</tt>; that is, an optional plus <tt></tt></tt>, followed\r
+        <tt>+?&lt;src&gt;:&lt;dst&gt;</tt>; that is, an optional plus <tt>&#43;</tt>, followed\r
         by the source ref, followed by a colon <tt>:</tt>, followed by\r
         the destination ref.\r
 </p>\r
@@ -1149,7 +1149,7 @@ Junio C Hamano and 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-22 09:19:13 UTC\r
+Last updated 2008-08-10 03:55:19 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 844940f322596f4f8dc41827582e7c5215f5defd..c4caddd09197acdecfb7d501b61b22fb840ee750 100644 (file)
@@ -350,8 +350,8 @@ documentation for <a href="git-receive-pack.html">git-receive-pack(1)</a>.</p></
 </dt>\r
 <dd>\r
 <p>\r
-        The canonical format of each &lt;refspec&gt; parameter is\r
-        <tt><tt>?&lt;src&gt;:&lt;dst&gt;</tt>; that is, an optional plus <tt></tt></tt>, followed\r
+        The canonical format of a &lt;refspec&gt; parameter is\r
+        <tt>+?&lt;src&gt;:&lt;dst&gt;</tt>; that is, an optional plus <tt>&#43;</tt>, followed\r
         by the source ref, followed by a colon <tt>:</tt>, followed by\r
         the destination ref.\r
 </p>\r
@@ -818,7 +818,7 @@ by Linus Torvalds &lt;torvalds@osdl.org&gt;</p></div>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-07-30 18:31:05 UTC\r
+Last updated 2008-08-10 03:55:20 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 050c3ddae2732fdf4cb9f3b0f798e3d2d190fa4e..45c96435fa66ab4b1b57b6a860a2fc264321cfe4 100644 (file)
@@ -31,8 +31,8 @@ OPTIONS
        operation.  See the section <<URLS,GIT URLS>> below.
 
 <refspec>...::
-       The canonical format of each <refspec> parameter is
-       `+?<src>:<dst>`; that is, an optional plus `+`, followed
+       The canonical format of a <refspec> parameter is
+       `+?<src>:<dst>`; that is, an optional plus `{plus}`, followed
        by the source ref, followed by a colon `:`, followed by
        the destination ref.
 +
index 95331b9ac7c967c7c9b02411581d520407cb7823..acbd5d8a5c5c48d85cc6fc93249e62bfd08c2a85 100644 (file)
@@ -418,14 +418,14 @@ One way to do it is to pull master into the topic branch:</p></div>
 </div></div>\r
 <div class="para"><p>The commits marked with <tt>*</tt> touch the same area in the same\r
 file; you need to resolve the conflicts when creating the commit\r
-marked with <tt>+</tt>.  Then you can test the result to make sure your\r
+marked with <tt>&#43;</tt>.  Then you can test the result to make sure your\r
 work-in-progress still works with what is in the latest master.</p></div>\r
 <div class="para"><p>After this test merge, there are two ways to continue your work\r
 on the topic.  The easiest is to build on top of the test merge\r
-commit <tt><tt></tt>, and when your work in the topic branch is finally\r
+commit <tt>&#43;</tt>, and when your work in the topic branch is finally\r
 ready, pull the topic branch into master, and/or ask the\r
 upstream to pull from you.  By that time, however, the master or\r
-the upstream might have been advanced since the test merge <tt></tt></tt>,\r
+the upstream might have been advanced since the test merge <tt>&#43;</tt>,\r
 in which case the final commit graph would look like this:</p></div>\r
 <div class="listingblock">\r
 <div class="content">\r
@@ -529,7 +529,7 @@ conflict.</p></div>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-07-24 04:02:42 UTC\r
+Last updated 2008-08-10 03:55:20 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 89f321b414212a555f1e0fb0ff0ce6f4c180fd06..64715c17da6c313a1cec4c353300eb0faee2313b 100644 (file)
@@ -90,15 +90,15 @@ One way to do it is to pull master into the topic branch:
 
 The commits marked with `*` touch the same area in the same
 file; you need to resolve the conflicts when creating the commit
-marked with `+`.  Then you can test the result to make sure your
+marked with `{plus}`.  Then you can test the result to make sure your
 work-in-progress still works with what is in the latest master.
 
 After this test merge, there are two ways to continue your work
 on the topic.  The easiest is to build on top of the test merge
-commit `+`, and when your work in the topic branch is finally
+commit `{plus}`, and when your work in the topic branch is finally
 ready, pull the topic branch into master, and/or ask the
 upstream to pull from you.  By that time, however, the master or
-the upstream might have been advanced since the test merge `+`,
+the upstream might have been advanced since the test merge `{plus}`,
 in which case the final commit graph would look like this:
 
 ------------
index 657ccfe49c0e3fb7cacf7847414f542d582d28f3..44232cc58c60ed1e3e883bbb867d6f9ce0e5b0e7 100644 (file)
@@ -320,7 +320,7 @@ git-rm(1) Manual Page
 </div>\r
 <h2>SYNOPSIS</h2>\r
 <div class="sectionbody">\r
-<div class="para"><p><em>git rm</em> [-f] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] &lt;file&gt;&#8230;</p></div>\r
+<div class="para"><p><em>git rm</em> [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] &lt;file&gt;&#8230;</p></div>\r
 </div>\r
 <h2 id="_description">DESCRIPTION</h2>\r
 <div class="sectionbody">\r
@@ -356,6 +356,9 @@ allowing the file to be removed from just the index.</p></div>
 <dt>\r
 -f\r
 </dt>\r
+<dt>\r
+--force\r
+</dt>\r
 <dd>\r
 <p>\r
         Override the up-to-date check.\r
@@ -481,7 +484,7 @@ git rm -f git-*.sh
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-07-06 05:17:01 UTC\r
+Last updated 2008-08-10 03:55:20 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 4d0c495bc3ecb5482165a46956efe73dfdc5ee72..5afb1e7428126c79171cf7e7b1fb027e1de64c86 100644 (file)
@@ -7,7 +7,7 @@ git-rm - Remove files from the working tree and from the index
 
 SYNOPSIS
 --------
-'git rm' [-f] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] <file>...
+'git rm' [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] <file>...
 
 DESCRIPTION
 -----------
@@ -36,6 +36,7 @@ OPTIONS
        but this requires the `-r` option to be explicitly given.
 
 -f::
+--force::
        Override the up-to-date check.
 
 -n::
index 6c521226190843a3b9018578e0aabce6fc1ce7ad..4fd22cc958fe2dc071d735767d674832badd7001 100644 (file)
@@ -554,6 +554,23 @@ and have no uncommitted changes.</p></div>
         After committing, do not rebase or reset.\r
 </p>\r
 </dd>\r
+<dt>\r
+--commit-url &lt;URL&gt;\r
+</dt>\r
+<dd>\r
+<p>\r
+        Commit to this SVN URL (the full path).  This is intended to\r
+        allow existing git-svn repositories created with one transport\r
+        method (e.g. <tt>svn://</tt> or <tt>http://</tt> for anonymous read) to be\r
+        reused if a user is later given access to an alternate transport\r
+        method (e.g. <tt>svn+ssh://</tt> or <tt>https://</tt>) for commit.\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>Using this option for any other purpose (don't ask)\r
+is very strongly discouraged.</tt></pre>\r
+</div></div>\r
+</dd>\r
 </dl></div>\r
 </dd>\r
 </dl></div>\r
@@ -1219,7 +1236,7 @@ should be manually entered with a text-editor or using <em>git-config</em>.</p><
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2008-08-06 06:19:10 UTC\r
+Last updated 2008-08-10 03:55:21 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 773ae9654b71304b969d421607b77819c95d4cca..1e644ca6dc8c42be81f52243a1af992c9d56f21c 100644 (file)
@@ -138,6 +138,15 @@ and have no uncommitted changes.
 +
 --no-rebase;;
        After committing, do not rebase or reset.
+--commit-url <URL>;;
+       Commit to this SVN URL (the full path).  This is intended to
+       allow existing git-svn repositories created with one transport
+       method (e.g. `svn://` or `http://` for anonymous read) to be
+       reused if a user is later given access to an alternate transport
+       method (e.g. `svn+ssh://` or `https://`) for commit.
+
+       Using this option for any other purpose (don't ask)
+       is very strongly discouraged.
 --
 
 'log'::
index 00a8d210476089257be3d09ac8a16d1f8e1dd8dc..ebdd948cd23931e9bbc35bb304868ce46902e464 100644 (file)
@@ -6,7 +6,7 @@
 
 <refspec>::
        The canonical format of a <refspec> parameter is
-       `+?<src>:<dst>`; that is, an optional plus `+`, followed
+       `+?<src>:<dst>`; that is, an optional plus `{plus}`, followed
        by the source ref, followed by a colon `:`, followed by
        the destination ref.
 +
index b33e2e8a4b5162242605ab363423d8f790b50dac..415e24281e9d77cc76f66cfefdf8c10860ca46e9 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="id240748"></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="#id318563">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="id318563"></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="id469338"></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="#id547154">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="id547154"></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
@@ -447,8 +447,8 @@ This typically includes files generated by a build process or temporary
 backup files made by your editor. Of course, <span class="emphasis"><em>not</em></span> tracking files with git
 is just a matter of <span class="emphasis"><em>not</em></span> calling "<code class="literal">git-add</code>" on them. But it quickly becomes
 annoying to have these untracked files lying around; e.g. they make
-"<code class="literal">git add .</code>" and "<code class="literal">git commit -a</code>" practically useless, and they keep
-showing up in the output of "<code class="literal">git status</code>".</p><p>You can tell git to ignore certain files by creating a file called .gitignore
+"<code class="literal">git add .</code>" practically useless, and they keep showing up in the output of
+"<code class="literal">git status</code>".</p><p>You can tell git to ignore certain files by creating a file called .gitignore
 in the top level of your working directory, with contents such as:</p><div class="literallayout"><p># Lines starting with '#' are considered comments.<br>
 # Ignore any file named foo.txt.<br>
 foo.txt<br>
index 43f4e392fd01c14de3a1ed90af1de7795869d2b6..f4216899427ab2a24f92dd20da9b43c01c9ef11b 100644 (file)
@@ -1128,8 +1128,8 @@ This typically includes files generated by a build process or temporary
 backup files made by your editor. Of course, 'not' tracking files with git
 is just a matter of 'not' calling "`git-add`" on them. But it quickly becomes
 annoying to have these untracked files lying around; e.g. they make
-"`git add .`" and "`git commit -a`" practically useless, and they keep
-showing up in the output of "`git status`".
+"`git add .`" practically useless, and they keep showing up in the output of
+"`git status`".
 
 You can tell git to ignore certain files by creating a file called .gitignore
 in the top level of your working directory, with contents such as: