docs
Elijah Newren 3 years ago
parent e22ceb8db4
commit 8e2d3ce4cf

@ -1724,19 +1724,37 @@ kidding - be patient!)</p></div>
</div>
<div class="sect2">
<h3 id="v2-git-send-email">Sending v2</h3>
<div class="paragraph"><p>Skip ahead to <a href="#reviewing">Responding to Reviews</a> for information on how to
handle comments from reviewers. Continue this section when your topic branch is
shaped the way you want it to look for your patchset v2.</p></div>
<div class="paragraph"><p>When you&#8217;re ready with the next iteration of your patch, the process is fairly
similar.</p></div>
<div class="paragraph"><p>First, generate your v2 patches again:</p></div>
<div class="paragraph"><p>This section will focus on how to send a v2 of your patchset. To learn what
should go into v2, skip ahead to <a href="#reviewing">Responding to Reviews</a> for
information on how to handle comments from reviewers.</p></div>
<div class="paragraph"><p>We&#8217;ll reuse our <code>psuh</code> topic branch for v2. Before we make any changes, we&#8217;ll
mark the tip of our v1 branch for easy reference:</p></div>
<div class="listingblock">
<div class="content">
<pre><code>$ git checkout psuh
$ git branch psuh-v1</code></pre>
</div></div>
<div class="paragraph"><p>Refine your patch series by using <code>git rebase -i</code> to adjust commits based upon
reviewer comments. Once the patch series is ready for submission, generate your
patches again, but with some new flags:</p></div>
<div class="listingblock">
<div class="content">
<pre><code>$ git format-patch -v2 --cover-letter -o psuh/ master..psuh</code></pre>
<pre><code>$ git format-patch -v2 --cover-letter -o psuh/ --range-diff master..psuh-v1 master..</code></pre>
</div></div>
<div class="paragraph"><p>This will add your v2 patches, all named like <code>v2-000n-my-commit-subject.patch</code>,
to the <code>psuh/</code> directory. You may notice that they are sitting alongside the v1
patches; that&#8217;s fine, but be careful when you are ready to send them.</p></div>
<div class="paragraph"><p>The <code>--range-diff master..psuh-v1</code> parameter tells <code>format-patch</code> to include a
range-diff between <code>psuh-v1</code> and <code>psuh</code> in the cover letter (see
<a href="git-range-diff.html">git-range-diff(1)</a>). This helps tell reviewers about the differences
between your v1 and v2 patches.</p></div>
<div class="paragraph"><p>The <code>-v2</code> parameter tells <code>format-patch</code> to output your patches
as version "2". For instance, you may notice that your v2 patches are
all named like <code>v2-000n-my-commit-subject.patch</code>. <code>-v2</code> will also format
your patches by prefixing them with "[PATCH v2]" instead of "[PATCH]",
and your range-diff will be prefaced with "Range-diff against v1".</p></div>
<div class="paragraph"><p>Afer you run this command, <code>format-patch</code> will output the patches to the <code>psuh/</code>
directory, alongside the v1 patches. Using a single directory makes it easy to
refer to the old v1 patches while proofreading the v2 patches, but you will need
to be careful to send out only the v2 patches. We will use a pattern like
"psuh/v2-<strong>.patch" (not "psuh/</strong>.patch", which would match v1 and v2 patches).</p></div>
<div class="paragraph"><p>Edit your cover letter again. Now is a good time to mention what&#8217;s different
between your last version and now, if it&#8217;s something significant. You do not
need the exact same body in your second cover letter; focus on explaining to
@ -1769,7 +1787,7 @@ to the command:</p></div>
<div class="content">
<pre><code>$ git send-email --to=target@example.com
--in-reply-to="&lt;foo.12345.author@example.com&gt;"
psuh/v2*</code></pre>
psuh/v2-*.patch</code></pre>
</div></div>
</div>
<div class="sect2">
@ -1912,7 +1930,7 @@ should generate your diffs from <code>&lt;topic&gt;..&lt;mybranch&gt;</code> and
<div id="footer">
<div id="footer-text">
Last updated
2021-07-29 20:14:45 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -1512,7 +1512,7 @@ be traversed during a walk; you can imagine a breadth-first tree traversal to
help understand. In our case, that means we omit trees and blobs not directly
referenced by <code>HEAD</code> or <code>HEAD</code>'s history, because we begin the walk with only
<code>HEAD</code> in the <code>pending</code> list.)</p></div>
<div class="paragraph"><p>First, we&#8217;ll need to <code>#include "list-objects-filter-options.h</code>" and set up the
<div class="paragraph"><p>First, we&#8217;ll need to <code>#include "list-objects-filter-options.h"</code> and set up the
<code>struct list_objects_filter_options</code> at the top of the function.</p></div>
<div class="listingblock">
<div class="content">
@ -1594,7 +1594,7 @@ Count all the objects within and modify the print statement:</p></div>
while ((oid = oidset_iter_next(&amp;oit)))
omitted_count++;
printf("commits %d\nblobs %d\ntags %d\ntrees%d\nomitted %d\n",
printf("commits %d\nblobs %d\ntags %d\ntrees %d\nomitted %d\n",
commit_count, blob_count, tag_count, tree_count, omitted_count);</code></pre>
</div></div>
<div class="paragraph"><p>By running your walk with and without the filter, you should find that the total
@ -1717,7 +1717,7 @@ Changed the display order of the filtered object walk
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -1366,7 +1366,7 @@ this problem around.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-08-20 10:05:30 PDT
2021-11-15 14:34:40 PST
</div>
</div>
</body>

@ -750,7 +750,7 @@ git-add(1) Manual Page
<div class="sectionbody">
<div class="verseblock">
<pre class="content"><em>git add</em> [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | -i] [--patch | -p]
[--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]]
[--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]] [--sparse]
[--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing] [--renormalize]
[--chmod=(+|-)x] [--pathspec-from-file=&lt;file&gt; [--pathspec-file-nul]]
[--] [&lt;pathspec&gt;&#8230;]</pre>
@ -847,6 +847,18 @@ in <a href="gitglossary.html">gitglossary(7)</a>.</p></div>
</p>
</dd>
<dt class="hdlist1">
--sparse
</dt>
<dd>
<p>
Allow updating index entries outside of the sparse-checkout cone.
Normally, <code>git add</code> refuses to update index entries whose paths do
not fit within the sparse-checkout cone, since those files might
be removed from the working tree without warning. See
<a href="git-sparse-checkout.html">git-sparse-checkout(1)</a> for more details.
</p>
</dd>
<dt class="hdlist1">
-i
</dt>
<dt class="hdlist1">
@ -1375,7 +1387,7 @@ modifying the contents of context or removal lines
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -1092,6 +1092,8 @@ default. You can use <code>--no-utf8</code> to override this.</p></div>
<dd>
<p>
Restore the original branch and abort the patching operation.
Revert contents of files involved in the am operation to their
pre-am state.
</p>
</dd>
<dt class="hdlist1">
@ -1207,7 +1209,7 @@ information.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-07-29 20:14:45 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -1043,6 +1043,27 @@ take effect.</p></div>
</p>
</dd>
<dt class="hdlist1">
--color-lines
</dt>
<dd>
<p>
Color line annotations in the default format differently if they come from
the same commit as the preceding line. This makes it easier to distinguish
code blocks introduced by different commits. The color defaults to cyan and
can be adjusted using the <code>color.blame.repeatedLines</code> config option.
</p>
</dd>
<dt class="hdlist1">
--color-by-age
</dt>
<dd>
<p>
Color line annotations depending on the age of the line in the default format.
The <code>color.blame.highlightRecent</code> config option controls what color is used for
each range of age.
</p>
</dd>
<dt class="hdlist1">
-h
</dt>
<dd>
@ -1070,7 +1091,7 @@ take effect.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2019-07-27 10:33:26 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -1221,7 +1221,7 @@ subdirectory is checked and (if possible) updated.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-15 14:04:40 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -905,7 +905,7 @@ patches that have been traded out-of-sequence between the branches.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2020-03-10 13:56:38 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -909,20 +909,30 @@ comment.</p></div>
<h3 id="_zip">zip</h3>
<div class="dlist"><dl>
<dt class="hdlist1">
-0
-&lt;digit&gt;
</dt>
<dd>
<p>
Store the files instead of deflating them.
Specify compression level. Larger values allow the command
to spend more time to compress to smaller size. Supported
values are from <code>-0</code> (store-only) to <code>-9</code> (best ratio).
Default is <code>-6</code> if not given.
</p>
</dd>
</dl></div>
</div>
<div class="sect2">
<h3 id="_tar">tar</h3>
<div class="dlist"><dl>
<dt class="hdlist1">
-9
-&lt;number&gt;
</dt>
<dd>
<p>
Highest and slowest compression level. You can specify any
number from 1 to 9 to adjust compression speed and ratio.
Specify compression level. The value will be passed to the
compression command configured in <code>tar.&lt;format&gt;.command</code>. See
manual page of the configured command for the list of supported
levels and the default level if this option isn&#8217;t specified.
</p>
</dd>
</dl></div>
@ -1106,7 +1116,7 @@ while archiving any tree in your <code>$GIT_DIR/info/attributes</code> file.</p>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -1983,7 +1983,7 @@ author to given a talk and for publishing this paper.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -1240,7 +1240,7 @@ help</code> or <code>git bisect -h</code> to get a long usage description.</p></
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -752,8 +752,8 @@ git-blame(1) Manual Page
<pre class="content"><em>git blame</em> [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-e] [-p] [-w] [--incremental]
[-L &lt;range&gt;] [-S &lt;revs-file&gt;] [-M] [-C] [-C] [-C] [--since=&lt;date&gt;]
[--ignore-rev &lt;rev&gt;] [--ignore-revs-file &lt;file&gt;]
[--progress] [--abbrev=&lt;n&gt;] [&lt;rev&gt; | --contents &lt;file&gt; | --reverse &lt;rev&gt;..&lt;rev&gt;]
[--] &lt;file&gt;</pre>
[--color-lines] [--color-by-age] [--progress] [--abbrev=&lt;n&gt;]
[&lt;rev&gt; | --contents &lt;file&gt; | --reverse &lt;rev&gt;..&lt;rev&gt;] [--] &lt;file&gt;</pre>
<div class="attribution">
</div></div>
</div>
@ -1065,6 +1065,27 @@ take effect.</p></div>
</p>
</dd>
<dt class="hdlist1">
--color-lines
</dt>
<dd>
<p>
Color line annotations in the default format differently if they come from
the same commit as the preceding line. This makes it easier to distinguish
code blocks introduced by different commits. The color defaults to cyan and
can be adjusted using the <code>color.blame.repeatedLines</code> config option.
</p>
</dd>
<dt class="hdlist1">
--color-by-age
</dt>
<dd>
<p>
Color line annotations depending on the age of the line in the default format.
The <code>color.blame.highlightRecent</code> config option controls what color is used for
each range of age.
</p>
</dd>
<dt class="hdlist1">
-h
</dt>
<dd>
@ -1164,6 +1185,32 @@ take effect.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_the_default_format">THE DEFAULT FORMAT</h2>
<div class="sectionbody">
<div class="paragraph"><p>When neither <code>--porcelain</code> nor <code>--incremental</code> option is specified,
<code>git blame</code> will output annotation for each line with:</p></div>
<div class="ulist"><ul>
<li>
<p>
abbreviated object name for the commit the line came from;
</p>
</li>
<li>
<p>
author ident (by default author name and date, unless <code>-s</code> or <code>-e</code>
is specified); and
</p>
</li>
<li>
<p>
line number
</p>
</li>
</ul></div>
<div class="paragraph"><p>before the line contents.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_the_porcelain_format">THE PORCELAIN FORMAT</h2>
<div class="sectionbody">
<div class="paragraph"><p>In this format, each line is output after a header; the
@ -1365,7 +1412,7 @@ commit commentary), a blame viewer will not care.</td>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -877,7 +877,8 @@ way to clean up all obsolete remote-tracking branches.</p></div>
Reset &lt;branchname&gt; to &lt;startpoint&gt;, even if &lt;branchname&gt; exists
already. Without <code>-f</code>, <em>git branch</em> refuses to change an existing branch.
In combination with <code>-d</code> (or <code>--delete</code>), allow deleting the
branch irrespective of its merged status. In combination with
branch irrespective of its merged status, or whether it even
points to a valid commit. In combination with
<code>-m</code> (or <code>--move</code>), allow renaming the branch even if the new
branch name already exists, the same applies for <code>-c</code> (or <code>--copy</code>).
</p>
@ -890,7 +891,7 @@ way to clean up all obsolete remote-tracking branches.</p></div>
</dt>
<dd>
<p>
Move/rename a branch and the corresponding reflog.
Move/rename a branch, together with its config and reflog.
</p>
</dd>
<dt class="hdlist1">
@ -909,7 +910,7 @@ way to clean up all obsolete remote-tracking branches.</p></div>
</dt>
<dd>
<p>
Copy a branch and the corresponding reflog.
Copy a branch, together with its config and reflog.
</p>
</dd>
<dt class="hdlist1">
@ -1397,7 +1398,7 @@ a branch?&#8221;</a> in the Git User&#8217;s Manual.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-15 14:04:40 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -825,8 +825,8 @@ the kind of information listed above when manually asking for help.</p></div>
</dt>
<dd>
<p>
Place the resulting bug report file in <code>&lt;path&gt;</code> instead of the root of
the Git repository.
Place the resulting bug report file in <code>&lt;path&gt;</code> instead of the current
directory.
</p>
</dd>
<dt class="hdlist1">
@ -856,7 +856,7 @@ the kind of information listed above when manually asking for help.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -753,7 +753,7 @@ git-bundle(1) Manual Page
[--version=&lt;version&gt;] &lt;file&gt; &lt;git-rev-list-args&gt;
<em>git bundle</em> verify [-q | --quiet] &lt;file&gt;
<em>git bundle</em> list-heads &lt;file&gt; [&lt;refname&gt;&#8230;]
<em>git bundle</em> unbundle &lt;file&gt; [&lt;refname&gt;&#8230;]</pre>
<em>git bundle</em> unbundle [--progress] &lt;file&gt; [&lt;refname&gt;&#8230;]</pre>
<div class="attribution">
</div></div>
</div>
@ -761,19 +761,42 @@ git-bundle(1) Manual Page
<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>Some workflows require that one or more branches of development on one
machine be replicated on another machine, but the two machines cannot
be directly connected, and therefore the interactive Git protocols (git,
ssh, http) cannot be used.</p></div>
<div class="paragraph"><p>The <em>git bundle</em> command packages objects and references in an archive
at the originating machine, which can then be imported into another
repository using <em>git fetch</em>, <em>git pull</em>, or <em>git clone</em>,
after moving the archive by some means (e.g., by sneakernet).</p></div>
<div class="paragraph"><p>As no
direct connection between the repositories exists, the user must specify a
basis for the bundle that is held by the destination repository: the
bundle assumes that all objects in the basis are already in the
destination repository.</p></div>
<div class="paragraph"><p>Create, unpack, and manipulate "bundle" files. Bundles are used for
the "offline" transfer of Git objects without an active "server"
sitting on the other side of the network connection.</p></div>
<div class="paragraph"><p>They can be used to create both incremental and full backups of a
repository, and to relay the state of the references in one repository
to another.</p></div>
<div class="paragraph"><p>Git commands that fetch or otherwise "read" via protocols such as
<code>ssh://</code> and <code>https://</code> can also operate on bundle files. It is
possible <a href="git-clone.html">git-clone(1)</a> a new repository from a bundle, to use
<a href="git-fetch.html">git-fetch(1)</a> to fetch from one, and to list the references
contained within it with <a href="git-ls-remote.html">git-ls-remote(1)</a>. There&#8217;s no
corresponding "write" support, i.e.a <em>git push</em> into a bundle is not
supported.</p></div>
<div class="paragraph"><p>See the "EXAMPLES" section below for examples of how to use bundles.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_bundle_format">BUNDLE FORMAT</h2>
<div class="sectionbody">
<div class="paragraph"><p>Bundles are <code>.pack</code> files (see <a href="git-pack-objects.html">git-pack-objects(1)</a>) with a
header indicating what references are contained within the bundle.</p></div>
<div class="paragraph"><p>Like the the packed archive format itself bundles can either be
self-contained, or be created using exclusions.
See the "OBJECT PREREQUISITES" section below.</p></div>
<div class="paragraph"><p>Bundles created using revision exclusions are "thin packs" created
using the <code>--thin</code> option to <a href="git-pack-objects.html">git-pack-objects(1)</a>, and
unbundled using the <code>--fix-thin</code> option to <a href="git-index-pack.html">git-index-pack(1)</a>.</p></div>
<div class="paragraph"><p>There is no option to create a "thick pack" when using revision
exclusions, and users should not be concerned about the difference. By
using "thin packs", bundles created using exclusions are smaller in
size. That they&#8217;re "thin" under the hood is merely noted here as a
curiosity, and as a reference to other documentation.</p></div>
<div class="paragraph"><p>See <a href="technical/bundle-format.html">the <code>bundle-format</code>
documentation</a> for more details and the discussion of "thin pack" in
<a href="technical/pack-format.html">the pack format documentation</a> for
further details.</p></div>
</div>
</div>
<div class="sect1">
@ -919,25 +942,77 @@ unbundle &lt;file&gt;
<div class="sect1">
<h2 id="_specifying_references">SPECIFYING REFERENCES</h2>
<div class="sectionbody">
<div class="paragraph"><p><em>git bundle</em> will only package references that are shown by
<em>git show-ref</em>: this includes heads, tags, and remote heads. References
such as <code>master~1</code> cannot be packaged, but are perfectly suitable for
defining the basis. More than one reference may be packaged, and more
than one basis can be specified. The objects packaged are those not
contained in the union of the given bases. Each basis can be
specified explicitly (e.g. <code>^master~10</code>), or implicitly (e.g.
<code>master~10..master</code>, <code>--since=10.days.ago master</code>).</p></div>
<div class="paragraph"><p>It is very important that the basis used be held by the destination.
It is okay to err on the side of caution, causing the bundle file
<div class="paragraph"><p>Revisions must be accompanied by reference names to be packaged in a
bundle.</p></div>
<div class="paragraph"><p>More than one reference may be packaged, and more than one set of prerequisite objects can
be specified. The objects packaged are those not contained in the
union of the prerequisites.</p></div>
<div class="paragraph"><p>The <em>git bundle create</em> command resolves the reference names for you
using the same rules as <code>git rev-parse --abbrev-ref=loose</code>. Each
prerequisite can be specified explicitly (e.g. <code>^master~10</code>), or implicitly
(e.g. <code>master~10..master</code>, <code>--since=10.days.ago master</code>).</p></div>
<div class="paragraph"><p>All of these simple cases are OK (assuming we have a "master" and
"next" branch):</p></div>
<div class="listingblock">
<div class="content">
<pre><code>$ git bundle create master.bundle master
$ echo master | git bundle create master.bundle --stdin
$ git bundle create master-and-next.bundle master next
$ (echo master; echo next) | git bundle create master-and-next.bundle --stdin</code></pre>
</div></div>
<div class="paragraph"><p>And so are these (and the same but omitted <code>--stdin</code> examples):</p></div>
<div class="listingblock">
<div class="content">
<pre><code>$ git bundle create recent-master.bundle master~10..master
$ git bundle create recent-updates.bundle master~10..master next~5..next</code></pre>
</div></div>
<div class="paragraph"><p>A revision name or a range whose right-hand-side cannot be resolved to
a reference is not accepted:</p></div>
<div class="listingblock">
<div class="content">
<pre><code>$ git bundle create HEAD.bundle $(git rev-parse HEAD)
fatal: Refusing to create empty bundle.
$ git bundle create master-yesterday.bundle master~10..master~5
fatal: Refusing to create empty bundle.</code></pre>
</div></div>
</div>
</div>
<div class="sect1">
<h2 id="_object_prerequisites">OBJECT PREREQUISITES</h2>
<div class="sectionbody">
<div class="paragraph"><p>When creating bundles it is possible to create a self-contained bundle
that can be unbundled in a repository with no common history, as well
as providing negative revisions to exclude objects needed in the
earlier parts of the history.</p></div>
<div class="paragraph"><p>Feeding a revision such as <code>new</code> to <code>git bundle create</code> will create a
bundle file that contains all the objects reachable from the revision
<code>new</code>. That bundle can be unbundled in any repository to obtain a full
history that leads to the revision <code>new</code>:</p></div>
<div class="listingblock">
<div class="content">
<pre><code>$ git bundle create full.bundle new</code></pre>
</div></div>
<div class="paragraph"><p>A revision range such as <code>old..new</code> will produce a bundle file that
will require the revision <code>old</code> (and any objects reachable from it)
to exist for the bundle to be "unbundle"-able:</p></div>
<div class="listingblock">
<div class="content">
<pre><code>$ git bundle create full.bundle old..new</code></pre>
</div></div>
<div class="paragraph"><p>A self-contained bundle without any prerequisites can be extracted
into anywhere, even into an empty repository, or be cloned from
(i.e., <code>new</code>, but not <code>old..new</code>).</p></div>
<div class="paragraph"><p>It is okay to err on the side of caution, causing the bundle file
to contain objects already in the destination, as these are ignored
when unpacking at the destination.</p></div>
<div class="paragraph"><p><code>git clone</code> can use any bundle created without negative refspecs
(e.g., <code>new</code>, but not <code>old..new</code>).
If you want to match <code>git clone --mirror</code>, which would include your
<div class="paragraph"><p>If you want to match <code>git clone --mirror</code>, which would include your
refs such as <code>refs/remotes/*</code>, use <code>--all</code>.
If you want to provide the same set of refs that a clone directly
from the source repository would get, use <code>--branches --tags</code> for
the <code>&lt;git-rev-list-args&gt;</code>.</p></div>
<div class="paragraph"><p>The <em>git bundle verify</em> command can be used to check whether your
recipient repository has the required prerequisite commits for a
bundle.</p></div>
</div>
</div>
<div class="sect1">
@ -949,7 +1024,7 @@ For whatever reason, direct connection between A and B is not allowed,
but we can move data from A to B via some mechanism (CD, email, etc.).
We want to update R2 with development made on the branch master in R1.</p></div>
<div class="paragraph"><p>To bootstrap the process, you can first create a bundle that does not have
any basis. You can use a tag to remember up to what commit you last
any prerequisites. You can use a tag to remember up to what commit you last
processed, in order to make it easy to later update the other repository
with an incremental bundle:</p></div>
<div class="listingblock">
@ -994,7 +1069,7 @@ machineB$ git pull</code></pre>
</div></div>
<div class="paragraph"><p>If you know up to what commit the intended recipient repository should
have the necessary objects, you can use that knowledge to specify the
basis, giving a cut-off point to limit the revisions and objects that go
prerequisites, giving a cut-off point to limit the revisions and objects that go
in the resulting bundle. The previous example used the lastR2bundle tag
for this purpose, but you can use any other options that you would give to
the <a href="git-log.html">git-log(1)</a> command. Here are more examples:</p></div>
@ -1003,7 +1078,7 @@ the <a href="git-log.html">git-log(1)</a> command. Here are more examples:</p></
<div class="content">
<pre><code>$ git bundle create mybundle v1.0.0..master</code></pre>
</div></div>
<div class="paragraph"><p>You can use a basis based on time:</p></div>
<div class="paragraph"><p>You can use a prerequisite based on time:</p></div>
<div class="listingblock">
<div class="content">
<pre><code>$ git bundle create mybundle --since=10.days master</code></pre>
@ -1014,7 +1089,7 @@ the <a href="git-log.html">git-log(1)</a> command. Here are more examples:</p></
<pre><code>$ git bundle create mybundle -10 master</code></pre>
</div></div>
<div class="paragraph"><p>You can run <code>git-bundle verify</code> to see if you can extract from a bundle
that was created with a basis:</p></div>
that was created with a prerequisite:</p></div>
<div class="listingblock">
<div class="content">
<pre><code>$ git bundle verify mybundle</code></pre>
@ -1046,7 +1121,7 @@ references when fetching:</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -903,8 +903,10 @@ whitespace, so that the appropriate drivers can be determined.</p></div>
Instead of reading a list of objects on stdin, perform the
requested batch operation on all objects in the repository and
any alternate object stores (not just reachable objects).
Requires <code>--batch</code> or <code>--batch-check</code> be specified. Note that
the objects are visited in order sorted by their hashes.
Requires <code>--batch</code> or <code>--batch-check</code> be specified. By default,
the objects are visited in order sorted by their hashes; see
also <code>--unordered</code> below. Objects are presented as-is, without
respecting the "replace" mechanism of <a href="git-replace.html">git-replace(1)</a>.
</p>
</dd>
<dt class="hdlist1">
@ -1186,7 +1188,7 @@ will be reported.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-15 14:04:40 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -960,7 +960,7 @@ README: caveat: unspecified</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -924,7 +924,7 @@ buffer.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -811,7 +811,7 @@ to specify a custom <code>.mailmap</code> target file or object.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -963,7 +963,7 @@ Determine the reference name to use for a new branch:
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -907,8 +907,9 @@ file can be discarded to re-create the original conflicted merge result.</p></di
<dd>
<p>
When switching branches, proceed even if the index or the
working tree differs from <code>HEAD</code>. This is used to throw away
local changes.
working tree differs from <code>HEAD</code>, and even if there are untracked
files in the way. This is used to throw away local changes and
any untracked files or directories that are in the way.
</p>
<div class="paragraph"><p>When checking out paths from the index, do not fail upon unmerged
entries; instead, unmerged entries are ignored.</p></div>
@ -1560,7 +1561,7 @@ $ git add frotz</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
2021-07-15 08:56:28 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -1212,7 +1212,7 @@ try to apply the change introduced by <code>topic^</code> again,
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -973,7 +973,7 @@ help
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -1430,7 +1430,7 @@ Create a bare repository to publish your changes to the public:
<div id="footer">
<div id="footer-text">
Last updated
2021-06-15 14:04:40 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -813,7 +813,7 @@ columns.</p></div>
</p>
</dd>
<dt class="hdlist1">
--nl=&lt;N&gt;
--nl=&lt;string&gt;
</dt>
<dd>
<p>
@ -873,7 +873,7 @@ v2.4.8 v2.4.9</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -940,7 +940,7 @@ Write a commit-graph file containing all commits in the current
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -1029,7 +1029,7 @@ reversible operation.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -1099,11 +1099,12 @@ option on the command line.</p></div>
-n
</dt>
<dt class="hdlist1">
--no-verify
--[no-]verify
</dt>
<dd>
<p>
This option bypasses the pre-commit and commit-msg hooks.
By default, the pre-commit and commit-msg hooks are run.
When any of <code>--no-verify</code> or <code>-n</code> is given, these are bypassed.
See also <a href="githooks.html">githooks(5)</a>.
</p>
</dd>
@ -1780,7 +1781,7 @@ information.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-07-29 20:14:45 PDT
2021-11-15 14:22:31 PST
</div>
</div>
</body>

@ -837,6 +837,8 @@ you try to use an invalid regexp (ret=6).
</li>
</ul></div>
<div class="paragraph"><p>On success, the command returns the exit code 0.</p></div>
<div class="paragraph"><p>A list of all available configuration variables can be obtained using the
<code>git help --config</code> command.</p></div>
</div>
</div>
<div class="sect1">
@ -1839,6 +1841,14 @@ pathname
is expanded to the value of <code>$HOME</code>, and <code>~user/</code> to the
specified user&#8217;s home directory.
</p>
<div class="paragraph"><p>If a path starts with <code>%(prefix)/</code>, the remainder is interpreted as a
path relative to Git&#8217;s "runtime prefix", i.e. relative to the location
where Git itself was installed. For example, <code>%(prefix)/bin/</code> refers to
the directory in which the Git executable itself lives. If Git was
compiled without runtime prefix support, the compiled-in prefix will be
substituted instead. In the unlikely event that a literal path needs to
be specified that should <em>not</em> be expanded, it needs to be prefixed by
<code>./</code>, like so: <code>./%(prefix)/bin</code>.</p></div>
</dd>
</dl></div>
</div>
@ -1959,6 +1969,15 @@ pushRefNeedsUpdate
</p>
</dd>
<dt class="hdlist1">
skippedCherryPicks
</dt>
<dd>
<p>
Shown when <a href="git-rebase.html">git-rebase(1)</a> skips a commit that has already
been cherry-picked onto the upstream branch.
</p>
</dd>
<dt class="hdlist1">
statusAheadBehind
</dt>
<dd>
@ -3382,9 +3401,6 @@ branch.&lt;name&gt;.rebase
<div class="paragraph"><p>When <code>merges</code> (or just <em>m</em>), pass the <code>--rebase-merges</code> option to <em>git rebase</em>
so that the local merge commits are included in the rebase (see
<a href="git-rebase.html">git-rebase(1)</a> for details).</p></div>
<div class="paragraph"><p>When <code>preserve</code> (or just <em>p</em>, deprecated in favor of <code>merges</code>), also pass
<code>--preserve-merges</code> along to <em>git rebase</em> so that locally committed merge
commits will not be flattened by running <em>git pull</em>.</p></div>
<div class="paragraph"><p>When the value is <code>interactive</code> (or just <em>i</em>), the rebase is run in interactive
mode.</p></div>
<div class="paragraph"><p><strong>NOTE</strong>: this is a possibly dangerous operation; do <strong>not</strong> use
@ -3538,28 +3554,29 @@ color.blame.highlightRecent
</dt>
<dd>
<p>
This can be used to color the metadata of a blame line depending
on age of the line.
Specify the line annotation color for <code>git blame --color-by-age</code>
depending upon the age of the line.
</p>
<div class="paragraph"><p>This setting should be set to a comma-separated list of color and date settings,
starting and ending with a color, the dates should be set from oldest to newest.
The metadata will be colored given the colors if the line was introduced
before the given timestamp, overwriting older timestamped colors.</p></div>
<div class="paragraph"><p>Instead of an absolute timestamp relative timestamps work as well, e.g.
2.weeks.ago is valid to address anything older than 2 weeks.</p></div>
<div class="paragraph"><p>It defaults to <em>blue,12 month ago,white,1 month ago,red</em>, which colors
everything older than one year blue, recent changes between one month and
one year old are kept white, and lines introduced within the last month are
colored red.</p></div>
<div class="paragraph"><p>This setting should be set to a comma-separated list of color and
date settings, starting and ending with a color, the dates should be
set from oldest to newest. The metadata will be colored with the
specified colors if the line was introduced before the given
timestamp, overwriting older timestamped colors.</p></div>
<div class="paragraph"><p>Instead of an absolute timestamp relative timestamps work as well,
e.g. <code>2.weeks.ago</code> is valid to address anything older than 2 weeks.</p></div>
<div class="paragraph"><p>It defaults to <code>blue,12 month ago,white,1 month ago,red</code>, which
colors everything older than one year blue, recent changes between
one month and one year old are kept white, and lines introduced
within the last month are colored red.</p></div>
</dd>
<dt class="hdlist1">
color.blame.repeatedLines
</dt>
<dd>
<p>
Use the customized color for the part of git-blame output that
is repeated meta information per line (such as commit id,
author name, date and timezone). Defaults to cyan.
Use the specified color to colorize line annotations for
<code>git blame --color-lines</code>, if they come from the same commit as the
preceding line. Defaults to cyan.
</p>
</dd>
<dt class="hdlist1">
@ -3717,7 +3734,8 @@ color.grep.&lt;slot&gt;
</dt>
<dd>
<p>
matching text in selected lines
matching text in selected lines. Also, used to customize the following
<a href="git-log.html">git-log(1)</a> subcommands: <code>--grep</code>, <code>--author</code> and <code>--committer</code>.
</p>
</dd>
<dt class="hdlist1">
@ -3725,7 +3743,9 @@ color.grep.&lt;slot&gt;
</dt>
<dd>
<p>
non-matching text in selected lines
non-matching text in selected lines. Also, used to customize the
following <a href="git-log.html">git-log(1)</a> subcommands: <code>--grep</code>, <code>--author</code> and
<code>--committer</code>.
</p>
</dd>
<dt class="hdlist1">
@ -5861,7 +5881,7 @@ gpg.format
<dd>
<p>
Specifies which key format to use when signing with <code>--gpg-sign</code>.
Default is "openpgp" and another possible value is "x509".
Default is "openpgp". Other possible values are "x509", "ssh".
</p>
</dd>
<dt class="hdlist1">
@ -5872,7 +5892,7 @@ gpg.&lt;format&gt;.program
Use this to customize the program used for the signing format you
chose. (see <code>gpg.program</code> and <code>gpg.format</code>) <code>gpg.program</code> can still
be used as a legacy synonym for <code>gpg.openpgp.program</code>. The default
value for <code>gpg.x509.program</code> is "gpgsm".
value for <code>gpg.x509.program</code> is "gpgsm" and <code>gpg.ssh.program</code> is "ssh-keygen".
</p>
</dd>
<dt class="hdlist1">
@ -5916,6 +5936,52 @@ gpg.minTrustLevel
</li>
</ul></div>
</dd>
</dl></div>
<div class="paragraph"><p>gpg.ssh.defaultKeyCommand:
This command that will be run when user.signingkey is not set and a ssh
signature is requested. On successful exit a valid ssh public key is
expected in the first line of its output. To automatically use the first
available key from your ssh-agent set this to "ssh-add -L".</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
gpg.ssh.allowedSignersFile
</dt>
<dd>
<p>
A file containing ssh public keys which you are willing to trust.
The file consists of one or more lines of principals followed by an ssh
public key.
e.g.: <a href="mailto:user1@example.com">user1@example.com</a>,<a href="mailto:user2@example.com">user2@example.com</a> ssh-rsa AAAAX1&#8230;
See ssh-keygen(1) "ALLOWED SIGNERS" for details.
The principal is only used to identify the key and is available when
verifying a signature.
</p>
<div class="paragraph"><p>SSH has no concept of trust levels like gpg does. To be able to differentiate
between valid signatures and trusted signatures the trust level of a signature
verification is set to <code>fully</code> when the public key is present in the allowedSignersFile.
Otherwise the trust level is <code>undefined</code> and git verify-commit/tag will fail.</p></div>
<div class="paragraph"><p>This file can be set to a location outside of the repository and every developer
maintains their own trust store. A central repository server could generate this
file automatically from ssh keys with push access to verify the code against.
In a corporate setting this file is probably generated at a global location
from automation that already handles developer ssh keys.</p></div>
<div class="paragraph"><p>A repository that only allows signed commits can store the file
in the repository itself using a path relative to the top-level of the working tree.
This way only committers with an already valid key can add or change keys in the keyring.</p></div>
<div class="paragraph"><p>Using a SSH CA key with the cert-authority option
(see ssh-keygen(1) "CERTIFICATES") is also valid.</p></div>
</dd>
<dt class="hdlist1">
gpg.ssh.revocationFile
</dt>
<dd>
<p>
Either a SSH KRL or a list of revoked public keys (without the principal prefix).
See ssh-keygen(1) for details.
If a public key is found in this file then it will always be treated
as having trust level "never" and signatures will show as invalid.
</p>
</dd>
<dt class="hdlist1">
gui.commitMsgWidth
</dt>
@ -5948,7 +6014,7 @@ gui.encoding
</dt>
<dd>
<p>
Specifies the default encoding to use for displaying of
Specifies the default character encoding to use for displaying of
file contents in <a href="git-gui.html">git-gui(1)</a> and <a href="gitk.html">gitk(1)</a>.
It can be overridden by setting the <em>encoding</em> attribute
for relevant files (see <a href="gitattributes.html">gitattributes(5)</a>).
@ -6160,14 +6226,38 @@ help.autoCorrect
<dd>
<p>
If git detects typos and can identify exactly one valid command similar
to the error, git will automatically run the intended command after
waiting a duration of time defined by this configuration value in
deciseconds (0.1 sec). If this value is 0, the suggested corrections
will be shown, but not executed. If it is a negative integer, or
"immediate", the suggested command
is run immediately. If "never", suggestions are not shown at all. The
default value is zero.
to the error, git will try to suggest the correct command or even
run the suggestion automatically. Possible config values are:
</p>
<div class="ulist"><ul>
<li>
<p>
0 (default): show the suggested command.
</p>
</li>
<li>
<p>
positive number: run the suggested command after specified
deciseconds (0.1 sec).
</p>
</li>
<li>
<p>
"immediate": run the suggested command immediately.
</p>
</li>
<li>
<p>
"prompt": show the suggestion and prompt for confirmation to run
the command.
</p>
</li>
<li>
<p>
"never": don&#8217;t run or show any suggested command.
</p>
</li>
</ul></div>
</dd>
<dt class="hdlist1">
help.htmlPath
@ -8150,6 +8240,9 @@ pack.writeBitmapHashCache
pushed since the last gc). The downside is that it consumes 4
bytes per object of disk space. Defaults to true.
</p>
<div class="paragraph"><p>When writing a multi-pack reachability bitmap, no new namehashes are
computed; instead, any namehashes stored in an existing bitmap are
permuted into their appropriate location when writing a new bitmap.</p></div>
</dd>
<dt class="hdlist1">
pack.writeReverseIndex
@ -8336,9 +8429,6 @@ pull.rebase
<div class="paragraph"><p>When <code>merges</code> (or just <em>m</em>), pass the <code>--rebase-merges</code> option to <em>git rebase</em>
so that the local merge commits are included in the rebase (see
<a href="git-rebase.html">git-rebase(1)</a> for details).</p></div>
<div class="paragraph"><p>When <code>preserve</code> (or just <em>p</em>, deprecated in favor of <code>merges</code>), also pass
<code>--preserve-merges</code> along to <em>git rebase</em> so that locally committed merge
commits will not be flattened by running <em>git pull</em>.</p></div>
<div class="paragraph"><p>When the value is <code>interactive</code> (or just <em>i</em>), the rebase is run in interactive
mode.</p></div>
<div class="paragraph"><p><strong>NOTE</strong>: this is a possibly dangerous operation; do <strong>not</strong> use
@ -10013,13 +10103,16 @@ explicitly exposing it, even if an earlier entry marked it as hidden.
If you have multiple hideRefs values, later entries override earlier ones
(and entries in more-specific config files override less-specific ones).</p></div>
<div class="paragraph"><p>If a namespace is in use, the namespace prefix is stripped from each
reference before it is matched against <code>transfer.hiderefs</code> patterns.
For example, if <code>refs/heads/master</code> is specified in <code>transfer.hideRefs</code> and
reference before it is matched against <code>transfer.hiderefs</code> patterns. In
order to match refs before stripping, add a <code>^</code> in front of the ref name. If
you combine <code>!</code> and <code>^</code>, <code>!</code> must be specified first.</p></div>
<div class="paragraph"><p>For example, if <code>refs/heads/master</code> is specified in <code>transfer.hideRefs</code> and
the current namespace is <code>foo</code>, then <code>refs/namespaces/foo/refs/heads/master</code>
is omitted from the advertisements but <code>refs/heads/master</code> and
<code>refs/namespaces/bar/refs/heads/master</code> are still advertised as so-called
"have" lines. In order to match refs before stripping, add a <code>^</code> in front of
the ref name. If you combine <code>!</code> and <code>^</code>, <code>!</code> must be specified first.</p></div>
is omitted from the advertisements. If <code>uploadpack.allowRefInWant</code> is set,
<code>upload-pack</code> will treat <code>want-ref refs/heads/master</code> in a protocol v2
<code>fetch</code> command as if <code>refs/namespaces/foo/refs/heads/master</code> did not exist.
<code>receive-pack</code>, on the other hand, will still advertise the object id the
ref is pointing to without mentioning its name (a so-called ".have" line).</p></div>
<div class="paragraph"><p>Even if you hide refs, a client may still be able to steal the target
objects via the techniques described in the "SECURITY" section of the
<a href="gitnamespaces.html">gitnamespaces(7)</a> man page; it&#8217;s best to keep private data in a
@ -10296,6 +10389,13 @@ user.signingKey
commit, you can override the default selection with this variable.
This option is passed unchanged to gpg&#8217;s --local-user parameter,
so you may specify a key using any method that gpg supports.
If gpg.format is set to "ssh" this can contain the literal ssh public
key (e.g.: "ssh-rsa XXXXXX identifier") or a file which contains it and
corresponds to the private key used for signing. The private key
needs to be available via ssh-agent. Alternatively it can be set to
a file containing a private key directly. If not set git will call
gpg.ssh.defaultKeyCommand (e.g.: "ssh-add -L") and try to use the first
key available.
</p>
</dd>
<dt class="hdlist1">
@ -10401,7 +10501,7 @@ looks like</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-08-16 10:13:21 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -842,7 +842,7 @@ variable (this example drops the cache time to 5 minutes):</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2019-07-27 10:33:26 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -882,7 +882,7 @@ for more information.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -946,7 +946,7 @@ username in the example above) will be left unset.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-07-29 20:14:45 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -951,7 +951,7 @@ $ git cherry cvshead myhead | sed -n 's/^+ //p' | xargs -l1 git cvsexportcommit
<div id="footer">
<div id="footer-text">
Last updated
2017-12-22 18:32:40 PST
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -1107,7 +1107,7 @@ cvs2git (part of cvs2svn), <code>http://subversion.apache.org/</code>
<div id="footer">
<div id="footer-text">
Last updated
2018-06-15 19:48:09 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -880,7 +880,7 @@ looks like</p></div>
<div class="content">
<pre><code> cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvsserver pserver</code></pre>
</div></div>
<div class="paragraph"><p>Only anonymous access is provided by pserve by default. To commit you
<div class="paragraph"><p>Only anonymous access is provided by pserver by default. To commit you
will have to create pserver accounts, simply add a gitcvs.authdb
setting in the config file of the repositories you want the cvsserver
to allow writes to, for example:</p></div>
@ -893,21 +893,19 @@ to allow writes to, for example:</p></div>
for example:</p></div>
<div class="listingblock">
<div class="content">
<pre><code> myuser:$1Oyx5r9mdGZ2
myuser:$1$BA)@$vbnMJMDym7tA32AamXrm./</code></pre>
<pre><code> myuser:sqkNi8zPf01HI
myuser:$1$9K7FzU28$VfF6EoPYCJEYcVQwATgOP/
myuser:$5$.NqmNH1vwfzGpV8B$znZIcumu1tNLATgV2l6e1/mY8RzhUDHMOaVOeL1cxV3</code></pre>
</div></div>
<div class="paragraph"><p>You can use the <em>htpasswd</em> facility that comes with Apache to make these
files, but Apache&#8217;s MD5 crypt method differs from the one used by most C
library&#8217;s crypt() function, so don&#8217;t use the -m option.</p></div>
<div class="paragraph"><p>Alternatively you can produce the password with perl&#8217;s crypt() operator:</p></div>
<div class="listingblock">
<div class="content">
<pre><code> perl -e 'my ($user, $pass) = @ARGV; printf "%s:%s\n", $user, crypt($user, $pass)' $USER password</code></pre>
</div></div>
files, but only with the -d option (or -B if your system suports it).</p></div>
<div class="paragraph"><p>Preferably use the system specific utility that manages password hash
creation in your platform (e.g. mkpasswd in Linux, encrypt in OpenBSD or
pwhash in NetBSD) and paste it in the right location.</p></div>
<div class="paragraph"><p>Then provide your password via the pserver method, for example:</p></div>
<div class="listingblock">
<div class="content">
<pre><code> cvs -d:pserver:someuser:somepassword &lt;at&gt; server/path/repo.git co &lt;HEAD_name&gt;</code></pre>
<pre><code> cvs -d:pserver:someuser:somepassword@server:/path/repo.git co &lt;HEAD_name&gt;</code></pre>
</div></div>
<div class="paragraph"><p>No special setup is needed for SSH access, other than having Git tools
in the PATH. If you have clients that do not accept the CVS_SERVER
@ -916,7 +914,7 @@ environment variable, you can rename <em>git-cvsserver</em> to <code>cvs</code>.
CVS_SERVER directly in CVSROOT like</p></div>
<div class="listingblock">
<div class="content">
<pre><code>cvs -d ":ext;CVS_SERVER=git cvsserver:user@server/path/repo.git" co &lt;HEAD_name&gt;</code></pre>
<pre><code> cvs -d ":ext;CVS_SERVER=git cvsserver:user@server/path/repo.git" co &lt;HEAD_name&gt;</code></pre>
</div></div>
<div class="paragraph"><p>This has the advantage that it will be saved in your <em>CVS/Root</em> files and
you don&#8217;t need to worry about always setting the correct environment
@ -971,8 +969,8 @@ If you didn&#8217;t specify the CVSROOT/CVS_SERVER directly in the checkout comm
<div class="content">
<div class="listingblock">
<div class="content">
<pre><code> export CVSROOT=:ext:user@server:/var/git/project.git
export CVS_SERVER="git cvsserver"</code></pre>
<pre><code> export CVSROOT=:ext:user@server:/var/git/project.git
export CVS_SERVER="git cvsserver"</code></pre>
</div></div>
</div></div>
</li>
@ -995,7 +993,7 @@ Clients should now be able to check out the project. Use the CVS <em>module</em>
</p>
<div class="listingblock">
<div class="content">
<pre><code> cvs co -d project-master master</code></pre>
<pre><code> cvs co -d project-master master</code></pre>
</div></div>
</li>
</ol></div>
@ -1313,7 +1311,7 @@ and <code>gitcvs.allBinary</code> to "guess".</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-07-29 20:14:45 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -1280,7 +1280,7 @@ services are performed.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -1042,7 +1042,7 @@ tag being favorable.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-07-29 20:14:45 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -2251,7 +2251,7 @@ R: renaming of a file
</li>
<li>
<p>
T: change in the type of the file
T: change in the type of the file (regular file, symbolic link or submodule)
</p>
</li>
<li>
@ -2706,7 +2706,7 @@ the pathname, but if that is <code>NUL</code>, the record will show two paths.</
<div id="footer">
<div id="footer-text">
Last updated
2017-12-22 18:32:40 PST
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -2245,7 +2245,7 @@ R: renaming of a file
</li>
<li>
<p>
T: change in the type of the file
T: change in the type of the file (regular file, symbolic link or submodule)
</p>
</li>
<li>
@ -2800,7 +2800,7 @@ always have the special all-zero sha1.</td>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -2207,14 +2207,16 @@ people using 80-column terminals.</p></div>
</dt>
<dd>
<p>
The commit objects record the encoding used for the log message
Commit objects record the character encoding used for the log message
in their encoding header; this option can be used to tell the
command to re-code the commit log message in the encoding
preferred by the user. For non plumbing commands this
defaults to UTF-8. Note that if an object claims to be encoded
in <code>X</code> and we are outputting in <code>X</code>, we will output the object
verbatim; this means that invalid sequences in the original
commit may be copied to the output.
commit may be copied to the output. Likewise, if iconv(3) fails
to convert the commit, we will quietly output the original
object verbatim.
</p>
</dd>
<dt class="hdlist1">
@ -3506,7 +3508,7 @@ R: renaming of a file
</li>
<li>
<p>
T: change in the type of the file
T: change in the type of the file (regular file, symbolic link or submodule)
</p>
</li>
<li>
@ -3961,7 +3963,7 @@ the pathname, but if that is <code>NUL</code>, the record will show two paths.</
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -2383,7 +2383,7 @@ R: renaming of a file
</li>
<li>
<p>
T: change in the type of the file
T: change in the type of the file (regular file, symbolic link or submodule)
</p>
</li>
<li>
@ -3000,7 +3000,7 @@ Output diff in reverse.
<div id="footer">
<div id="footer-text">
Last updated
2021-08-16 10:13:21 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -1024,7 +1024,7 @@ difftool.trustExitCode
<div id="footer">
<div id="footer-text">
Last updated
2021-06-15 14:04:40 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -1120,7 +1120,7 @@ a tag referencing a tree instead of a commit.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-15 18:36:32 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -2616,7 +2616,7 @@ compression.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-15 18:36:32 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -974,7 +974,7 @@ they may alternatively be 40-hex sha1s present on the remote.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2019-07-27 10:33:26 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -2000,7 +2000,7 @@ version.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-08-16 10:13:21 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -1626,7 +1626,7 @@ To top it all off, even when users finally find working commands,
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -901,6 +901,9 @@ provides an option to analyze a repository and generate reports that
</div>
<div class="sect2">
<h3 id="_filtering_based_on_paths_see_also_filename_callback">Filtering based on paths (see also --filename-callback)</h3>
<div class="paragraph"><p>These options specify the paths to select. Note that much like git
itself, renames are NOT followed so you may need to specify multiple
paths, e.g. <code>--path olddir/ --path newdir/</code></p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
--invert-paths
@ -1069,6 +1072,16 @@ provides an option to analyze a repository and generate reports that
<h3 id="_filtering_of_commit_messages_see_also_message_callback">Filtering of commit messages (see also --message-callback)</h3>
<div class="dlist"><dl>
<dt class="hdlist1">
--replace-message &lt;expressions_file&gt;
</dt>
<dd>
<p>
A file with expressions that, if found in commit or tag
messages, will be replaced. This file uses the same syntax as
--replace-text.
</p>
</dd>
<dt class="hdlist1">
--preserve-commit-hashes
</dt>
<dd>
@ -2031,6 +2044,23 @@ globs and regexes are applied to the entire file, but without any
<div class="paragraph"><p>See also the <code>--blob-callback</code> from <a href="#CALLBACKS">[CALLBACKS]</a>.</p></div>
</div>
<div class="sect2">
<h3 id="_updating_commit_tag_messages">Updating commit/tag messages</h3>
<div class="paragraph"><p>If you want to modify commit or tag messages, you can do so with the
same syntax as <code>--replace-text</code>, explained above. For example, with a
file named expressions.txt containing</p></div>
<div class="listingblock">
<div class="content">
<pre><code>foo==&gt;bar</code></pre>
</div></div>
<div class="paragraph"><p>then running</p></div>
<div class="listingblock">
<div class="content">
<pre><code>git filter-repo --replace-message expressions.txt</code></pre>
</div></div>
<div class="paragraph"><p>will replace <code>foo</code> in commit or tag messages with <code>bar</code>.</p></div>
<div class="paragraph"><p>See also the <code>--message-callback</code> from <a href="#CALLBACKS">[CALLBACKS]</a>.</p></div>
</div>
<div class="sect2">
<h3 id="_refname_based_filtering">Refname based filtering</h3>
<div class="paragraph"><p>To rename tags, use <code>--tag-rename</code>, e.g.:</p></div>
<div class="listingblock">
@ -2679,7 +2709,7 @@ I assume that people use filter-repo for one-shot conversions, not
<div id="footer">
<div id="footer-text">
Last updated
2021-06-08 08:11:07 PDT
2021-11-09 09:48:35 PST
</div>
</div>
</body>

@ -908,7 +908,7 @@ the "origin" remote.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2020-03-10 13:56:38 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -1112,6 +1112,20 @@ and <code>date</code> to extract the named component. For email fields (<code>a
<code>committeremail</code> and <code>taggeremail</code>), <code>:trim</code> can be appended to get the email
without angle brackets, and <code>:localpart</code> to get the part before the <code>@</code> symbol
out of the trimmed email.</p></div>
<div class="paragraph"><p>The raw data in an object is <code>raw</code>.</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
raw:size
</dt>
<dd>
<p>
The raw data size of the object.
</p>
</dd>
</dl></div>
<div class="paragraph"><p>Note that <code>--format=%(raw)</code> can not be used with <code>--python</code>, <code>--shell</code>, <code>--tcl</code>,
because such language may not support arbitrary binary data in their string
variable type.</p></div>
<div class="paragraph"><p>The message in a commit or a tag object is <code>contents</code>, from which
<code>contents:&lt;part&gt;</code> can be used to extract various parts out of:</p></div>
<div class="dlist"><dl>
@ -1324,7 +1338,7 @@ commits and from none of the <code>--no-merged</code> commits are shown.</p></di
<div id="footer">
<div id="footer-text">
Last updated
2021-06-15 18:36:32 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -812,7 +812,7 @@ descriptors <code>stdin</code>, <code>stdout</code>, and <code>stderr</code>.</p
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -2474,10 +2474,10 @@ prerequisite-patch-id: Z</code></pre>
<div class="paragraph"><p>You can also use <code>git format-patch --base=P -3 C</code> to generate patches
for A, B and C, and the identifiers for P, X, Y, Z are appended at the
end of the first message.</p></div>
<div class="paragraph"><p>If set <code>--base=auto</code> in cmdline, it will track base commit automatically,
the base commit will be the merge base of tip commit of the remote-tracking
<div class="paragraph"><p>If set <code>--base=auto</code> in cmdline, it will automatically compute
the base commit as the merge base of tip commit of the remote-tracking
branch and revision-range specified in cmdline.
For a local branch, you need to track a remote branch by <code>git branch
For a local branch, you need to make it to track a remote branch by <code>git branch
--set-upstream-to</code> before using this option.</p></div>
</div>
</div>
@ -2569,7 +2569,7 @@ merge commit.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-07-29 20:14:45 PDT
2021-11-15 14:22:31 PST
</div>
</div>
</body>

@ -1103,7 +1103,7 @@ GIT_ALTERNATE_OBJECT_DIRECTORIES
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -1165,7 +1165,7 @@ seems to be low in practice).</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-15 14:04:40 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -1469,7 +1469,7 @@ grep.fallbackToNoIndex
<div id="footer">
<div id="footer-text">
Last updated
2021-07-29 20:14:45 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -945,7 +945,7 @@ of end users.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -853,7 +853,7 @@ When &lt;type&gt; is not specified, it defaults to "blob".</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -749,8 +749,10 @@ git-help(1) Manual Page
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="verseblock">
<pre class="content"><em>git help</em> [-a|--all [--[no-]verbose]] [-g|--guides]
[-i|--info|-m|--man|-w|--web] [COMMAND|GUIDE]</pre>
<pre class="content"><em>git help</em> [-a|--all [--[no-]verbose]]
[[-i|--info] [-m|--man] [-w|--web]] [COMMAND|GUIDE]
<em>git help</em> [-g|--guides]
<em>git help</em> [-c|--config]</pre>
<div class="attribution">
</div></div>
</div>
@ -823,8 +825,7 @@ former is internally converted into the latter.</p></div>
</dt>
<dd>
<p>
Prints a list of the Git concept guides on the standard output. This
option overrides any given command or guide name.
Prints a list of the Git concept guides on the standard output.
</p>
</dd>
<dt class="hdlist1">
@ -1011,7 +1012,7 @@ See <a href="git-config.html">git-config(1)</a> for more information about this.
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -761,7 +761,9 @@ git-http-backend(1) Manual Page
clients accessing the repository over http:// and https:// protocols.
The program supports clients fetching using both the smart HTTP protocol
and the backwards-compatible dumb HTTP protocol, as well as clients
pushing using the smart HTTP protocol.</p></div>
pushing using the smart HTTP protocol. It also supports Git&#8217;s
more-efficient "v2" protocol if properly configured; see the
discussion of <code>GIT_PROTOCOL</code> in the ENVIRONMENT section below.</p></div>
<div class="paragraph"><p>It verifies that the directory has the magic file
"git-daemon-export-ok", and it will refuse to export any Git directory
that hasn&#8217;t explicitly been marked for export this way (unless the
@ -847,7 +849,19 @@ Apache 2.x
<div class="content">
<pre><code>SetEnv GIT_PROJECT_ROOT /var/www/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/</code></pre>
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
# This is not strictly necessary using Apache and a modern version of
# git-http-backend, as the webserver will pass along the header in the
# environment as HTTP_GIT_PROTOCOL, and http-backend will copy that into
# GIT_PROTOCOL. But you may need this line (or something similar if you
# are using a different webserver), or if you want to support older Git
# versions that did not do that copying.
#
# Having the webserver set up GIT_PROTOCOL is perfectly fine even with
# modern versions (and will take precedence over HTTP_GIT_PROTOCOL,
# which means it can be used to override the client's request).
SetEnvIf Git-Protocol ".*" GIT_PROTOCOL=$0</code></pre>
</div></div>
<div class="paragraph"><p>To enable anonymous read access but authenticated write access,
require authorization for both the initial ref advertisement (which we
@ -1060,6 +1074,15 @@ normally need to be changed, but may be helpful if you are fetching from
a repository with an extremely large number of refs. The value can be
specified with a unit (e.g., <code>100M</code> for 100 megabytes). The default is
10 megabytes.</p></div>
<div class="paragraph"><p>Clients may probe for optional protocol capabilities (like the v2
protocol) using the <code>Git-Protocol</code> HTTP header. In order to support
these, the contents of that header must appear in the <code>GIT_PROTOCOL</code>
environment variable. Most webservers will pass this header to the CGI
via the <code>HTTP_GIT_PROTOCOL</code> variable, and <code>git-http-backend</code> will
automatically copy that to <code>GIT_PROTOCOL</code>. However, some webservers may
be more selective about which headers they&#8217;ll pass, in which case they
need to be configured explicitly (see the mention of <code>Git-Protocol</code> in
the Apache config from the earlier EXAMPLES section).</p></div>
<div class="paragraph"><p>The backend process sets GIT_COMMITTER_NAME to <em>$REMOTE_USER</em> and
GIT_COMMITTER_EMAIL to <em>${REMOTE_USER}@http.${REMOTE_ADDR}</em>,
ensuring that any reflogs created by <em>git-receive-pack</em> contain some
@ -1079,7 +1102,7 @@ invoked by the <em>git-receive-pack</em>.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -860,7 +860,7 @@ commit-id
<div id="footer">
<div id="footer-text">
Last updated
2021-06-15 14:04:40 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -909,7 +909,7 @@ to disable the fast-forward check only on that ref.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2019-07-27 10:33:26 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -1025,7 +1025,7 @@ users may wish to visit this web page for more information:
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -873,6 +873,16 @@ the objects/pack/ directory of a Git repository.</p></div>
</p>
</dd>
<dt class="hdlist1">
--progress-title
</dt>
<dd>
<p>
For internal use only.
</p>
<div class="paragraph"><p>Set the title of the progress bar. The title is "Receiving objects" by
default and "Indexing objects" when <code>--stdin</code> is specified.</p></div>
</dd>
<dt class="hdlist1">
--check-self-contained-and-connected
</dt>
<dd>
@ -958,7 +968,7 @@ mentioned above.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-15 14:04:40 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -772,7 +772,7 @@ documentation of that command.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2017-12-22 18:32:40 PST
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -1003,7 +1003,7 @@ Record the pristine state as the first commit in the history.
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -907,7 +907,7 @@ restart
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -1327,7 +1327,7 @@ $ chmod +x .git/hooks/commit-msg</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
2021-07-29 20:14:45 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -2144,14 +2144,16 @@ people using 80-column terminals.</p></div>
</dt>
<dd>
<p>
The commit objects record the encoding used for the log message
Commit objects record the character encoding used for the log message
in their encoding header; this option can be used to tell the
command to re-code the commit log message in the encoding
preferred by the user. For non plumbing commands this
defaults to UTF-8. Note that if an object claims to be encoded
in <code>X</code> and we are outputting in <code>X</code>, we will output the object
verbatim; this means that invalid sequences in the original
commit may be copied to the output.
commit may be copied to the output. Likewise, if iconv(3) fails
to convert the commit, we will quietly output the original
object verbatim.
</p>
</dd>
<dt class="hdlist1">
@ -5328,7 +5330,7 @@ and overridden by the <code>--notes=&lt;ref&gt;</code> option.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-07-29 20:14:45 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -1231,7 +1231,7 @@ pattern file appears in.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -945,7 +945,7 @@ c5db5456ae3b0873fc659c19fafdde22313cc441 refs/tags/v0.99.2
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -930,7 +930,7 @@ verbatim and the line is terminated by a NUL byte.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -950,7 +950,7 @@ If no such configuration option has been set, <code>warn</code> will be used.</p
<div id="footer">
<div id="footer-text">
Last updated
2021-07-29 20:14:45 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -1025,6 +1025,22 @@ pack-refs
See the <em>TASKS</em> section for the list of accepted <code>&lt;task&gt;</code> values.
</p>
</dd>
<dt class="hdlist1">
--scheduler=auto|crontab|systemd-timer|launchctl|schtasks
</dt>
<dd>
<p>
When combined with the <code>start</code> subcommand, specify the scheduler
for running the hourly, daily and weekly executions of
<code>git maintenance run</code>.
Possible values for <code>&lt;scheduler&gt;</code> are <code>auto</code>, <code>crontab</code>
(POSIX), <code>systemd-timer</code> (Linux), <code>launchctl</code> (macOS), and
<code>schtasks</code> (Windows). When <code>auto</code> is specified, the
appropriate platform-specific scheduler is used; on Linux,
<code>systemd-timer</code> is used if available, otherwise
<code>crontab</code>. Default is <code>auto</code>.
</p>
</dd>
</dl></div>
</div>
</div>
@ -1119,6 +1135,45 @@ schedule.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_background_maintenance_on_linux_systemd_systems">BACKGROUND MAINTENANCE ON LINUX SYSTEMD SYSTEMS</h2>
<div class="sectionbody">
<div class="paragraph"><p>While Linux supports <code>cron</code>, depending on the distribution, <code>cron</code> may
be an optional package not necessarily installed. On modern Linux
distributions, systemd timers are superseding it.</p></div>
<div class="paragraph"><p>If user systemd timers are available, they will be used as a replacement
of <code>cron</code>.</p></div>
<div class="paragraph"><p>In this case, <code>git maintenance start</code> will create user systemd timer units
and start the timers. The current list of user-scheduled tasks can be found
by running <code>systemctl --user list-timers</code>. The timers written by <code>git
maintenance start</code> are similar to this:</p></div>
<div class="listingblock">
<div class="content">
<pre><code>$ systemctl --user list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Thu 2021-04-29 19:00:00 CEST 42min left Thu 2021-04-29 18:00:11 CEST 17min ago git-maintenance@hourly.timer git-maintenance@hourly.service
Fri 2021-04-30 00:00:00 CEST 5h 42min left Thu 2021-04-29 00:00:11 CEST 18h ago git-maintenance@daily.timer git-maintenance@daily.service
Mon 2021-05-03 00:00:00 CEST 3 days left Mon 2021-04-26 00:00:11 CEST 3 days ago git-maintenance@weekly.timer git-maintenance@weekly.service</code></pre>
</div></div>
<div class="paragraph"><p>One timer is registered for each <code>--schedule=&lt;frequency&gt;</code> option.</p></div>
<div class="paragraph"><p>The definition of the systemd units can be inspected in the following files:</p></div>
<div class="listingblock">
<div class="content">
<pre><code>~/.config/systemd/user/git-maintenance@.timer
~/.config/systemd/user/git-maintenance@.service
~/.config/systemd/user/timers.target.wants/git-maintenance@hourly.timer
~/.config/systemd/user/timers.target.wants/git-maintenance@daily.timer
~/.config/systemd/user/timers.target.wants/git-maintenance@weekly.timer</code></pre>
</div></div>
<div class="paragraph"><p><code>git maintenance start</code> will overwrite these files and start the timer
again with <code>systemctl --user</code>, so any customization should be done by
creating a drop-in file, i.e. a <code>.conf</code> suffixed file in the
<code>~/.config/systemd/user/git-maintenance@.service.d</code> directory.</p></div>
<div class="paragraph"><p><code>git maintenance stop</code> will stop the user systemd timers and delete
the above mentioned files.</p></div>
<div class="paragraph"><p>For more details, see <code>systemd.timer(5)</code>.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_background_maintenance_on_macos_systems">BACKGROUND MAINTENANCE ON MACOS SYSTEMS</h2>
<div class="sectionbody">
<div class="paragraph"><p>While macOS technically supports <code>cron</code>, using <code>crontab -e</code> requires
@ -1184,7 +1239,7 @@ custom tasks.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-07-29 20:14:45 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -1017,7 +1017,7 @@ commits that used to be at the tip of origin/master).</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -886,7 +886,7 @@ implements all of RCS <em>merge</em>'s functionality which is needed by
<div id="footer">
<div id="footer-text">
Last updated
2021-07-15 08:56:28 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -852,7 +852,7 @@ for the AA file, because it didn&#8217;t exist in the original, and thus
<div id="footer">
<div id="footer-text">
Last updated
2021-06-15 18:36:32 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -979,11 +979,12 @@ option can be used to override --squash.</p></div>
<div class="paragraph"><p>With --squash, --commit is not allowed, and will fail.</p></div>
</dd>
<dt class="hdlist1">
--no-verify
--[no-]verify
</dt>
<dd>
<p>
This option bypasses the pre-merge and commit-msg hooks.
By default, the pre-merge and commit-msg hooks are run.
When <code>--no-verify</code> is given, these are bypassed.
See also <a href="githooks.html">githooks(5)</a>.
</p>
</dd>
@ -998,8 +999,8 @@ option can be used to override --squash.</p></div>
Use the given merge strategy; can be supplied more than
once to specify them in the order they should be tried.
If there is no <code>-s</code> option, a built-in list of strategies
is used instead (<em>git merge-recursive</em> when merging a single
head, <em>git merge-octopus</em> otherwise).
is used instead (<code>ort</code> when merging a single head,
<code>octopus</code> otherwise).
</p>
</dd>
<dt class="hdlist1">
@ -1487,36 +1488,26 @@ can also take their own options, which can be passed by giving <code>-X&lt;optio
arguments to <code>git merge</code> and/or <code>git pull</code>.</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
resolve
ort
</dt>
<dd>
<p>
This can only resolve two heads (i.e. the current branch
and another branch you pulled from) using a 3-way merge
algorithm. It tries to carefully detect criss-cross
merge ambiguities and is considered generally safe and
fast.
</p>
</dd>
<dt class="hdlist1">
recursive
</dt>
<dd>
<p>
This can only resolve two heads using a 3-way merge
algorithm. When there is more than one common
ancestor that can be used for 3-way merge, it creates a
merged tree of the common ancestors and uses that as
the reference tree for the 3-way merge. This has been
reported to result in fewer merge conflicts without
causing mismerges by tests done on actual merge commits
taken from Linux 2.6 kernel development history.
Additionally this can detect and handle merges involving
renames, but currently cannot make use of detected
copies. This is the default merge strategy when pulling
or merging one branch.
</p>
<div class="paragraph"><p>The <em>recursive</em> strategy can take the following options:</p></div>
This is the default merge strategy when pulling or merging one
branch. This strategy can only resolve two heads using a
3-way merge algorithm. When there is more than one common
ancestor that can be used for 3-way merge, it creates a merged
tree of the common ancestors and uses that as the reference
tree for the 3-way merge. This has been reported to result in
fewer merge conflicts without causing mismerges by tests done
on actual merge commits taken from Linux 2.6 kernel
development history. Additionally this strategy can detect
and handle merges involving renames. It does not make use of
detected copies. The name for this algorithm is an acronym
("Ostensibly Recursive&#8217;s Twin") and came from the fact that it
was written as a replacement for the previous default
algorithm, <code>recursive</code>.
</p>
<div class="paragraph"><p>The <em>ort</em> strategy can take the following options:</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
ours
@ -1542,29 +1533,6 @@ theirs
</p>
</dd>
<dt class="hdlist1">
patience
</dt>
<dd>
<p>
With this option, <em>merge-recursive</em> spends a little extra time
to avoid mismerges that sometimes occur due to unimportant
matching lines (e.g., braces from distinct functions). Use
this when the branches to be merged have diverged wildly.
See also <a href="git-diff.html">git-diff(1)</a> <code>--patience</code>.
</p>
</dd>
<dt class="hdlist1">
diff-algorithm=[patience|minimal|histogram|myers]
</dt>
<dd>
<p>
Tells <em>merge-recursive</em> to use a different diff algorithm, which
can help avoid mismerges that occur due to unimportant matching
lines (such as braces from distinct functions). See also
<a href="git-diff.html">git-diff(1)</a> <code>--diff-algorithm</code>.
</p>
</dd>
<dt class="hdlist1">
ignore-space-change
</dt>
<dt class="hdlist1">
@ -1627,16 +1595,6 @@ no-renormalize
</p>
</dd>
<dt class="hdlist1">
no-renames
</dt>
<dd>
<p>
Turn off rename detection. This overrides the <code>merge.renames</code>
configuration variable.
See also <a href="git-diff.html">git-diff(1)</a> <code>--no-renames</code>.
</p>
</dd>
<dt class="hdlist1">
find-renames[=&lt;n&gt;]
</dt>
<dd>
@ -1670,6 +1628,72 @@ subtree[=&lt;path&gt;]
</dl></div>
</dd>
<dt class="hdlist1">
recursive
</dt>
<dd>
<p>
This can only resolve two heads using a 3-way merge
algorithm. When there is more than one common
ancestor that can be used for 3-way merge, it creates a
merged tree of the common ancestors and uses that as
the reference tree for the 3-way merge. This has been
reported to result in fewer merge conflicts without
causing mismerges by tests done on actual merge commits
taken from Linux 2.6 kernel development history.
Additionally this can detect and handle merges involving
renames. It does not make use of detected copies. This was
the default strategy for resolving two heads from Git v0.99.9k
until v2.33.0.
</p>
<div class="paragraph"><p>The <em>recursive</em> strategy takes the same options as <em>ort</em>. However,
there are three additional options that <em>ort</em> ignores (not documented
above) that are potentially useful with the <em>recursive</em> strategy:</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
patience
</dt>
<dd>
<p>
Deprecated synonym for <code>diff-algorithm=patience</code>.
</p>
</dd>
<dt class="hdlist1">
diff-algorithm=[patience|minimal|histogram|myers]
</dt>
<dd>
<p>
Use a different diff algorithm while merging, which can help
avoid mismerges that occur due to unimportant matching lines
(such as braces from distinct functions). See also
<a href="git-diff.html">git-diff(1)</a> <code>--diff-algorithm</code>. Note that <code>ort</code>
specifically uses <code>diff-algorithm=histogram</code>, while <code>recursive</code>
defaults to the <code>diff.algorithm</code> config setting.
</p>
</dd>
<dt class="hdlist1">
no-renames
</dt>
<dd>
<p>
Turn off rename detection. This overrides the <code>merge.renames</code>
configuration variable.
See also <a href="git-diff.html">git-diff(1)</a> <code>--no-renames</code>.
</p>
</dd>
</dl></div>
</dd>
<dt class="hdlist1">
resolve
</dt>
<dd>
<p>
This can only resolve two heads (i.e. the current branch
and another branch you pulled from) using a 3-way merge
algorithm. It tries to carefully detect criss-cross
merge ambiguities. It does not handle renames.
</p>
</dd>
<dt class="hdlist1">
octopus
</dt>
<dd>
@ -1699,7 +1723,7 @@ subtree
</dt>
<dd>
<p>
This is a modified recursive strategy. When merging trees A and
This is a modified <code>ort</code> strategy. When merging trees A and
B, if B corresponds to a subtree of A, B is first adjusted to
match the tree structure of A, instead of reading the trees at
the same level. This adjustment is also done to the common
@ -1707,7 +1731,7 @@ subtree
</p>
</dd>
</dl></div>
<div class="paragraph"><p>With the strategies that use 3-way merge (including the default, <em>recursive</em>),
<div class="paragraph"><p>With the strategies that use 3-way merge (including the default, <em>ort</em>),
if a change is made on both branches, but later reverted on one of the
branches, that change will be present in the merged result; some people find
this behavior confusing. It occurs because only the heads and the merge base
@ -2154,7 +2178,7 @@ branch.&lt;name&gt;.mergeOptions
<div id="footer">
<div id="footer-text">
Last updated
2021-07-21 20:51:06 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -832,7 +832,7 @@ run_merge_tool
<div id="footer">
<div id="footer-text">
Last updated
2021-06-15 14:04:40 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -1047,7 +1047,7 @@ are successfully merged.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-15 14:04:40 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -828,7 +828,7 @@ care about, but that can be verified with gpg.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-07-29 20:14:45 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -811,7 +811,7 @@ built is written to the standard output.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2019-07-27 10:33:26 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -749,8 +749,7 @@ git-multi-pack-index(1) Manual Page
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="verseblock">
<pre class="content"><em>git multi-pack-index</em> [--object-dir=&lt;dir&gt;] [--[no-]progress]
[--preferred-pack=&lt;pack&gt;] &lt;subcommand&gt;</pre>
<pre class="content"><em>git multi-pack-index</em> [--object-dir=&lt;dir&gt;] [--[no-]bitmap] &lt;sub-command&gt;</pre>
<div class="attribution">
</div></div>
</div>
@ -774,6 +773,7 @@ git-multi-pack-index(1) Manual Page
<code>&lt;dir&gt;/packs/multi-pack-index</code> for the current MIDX file, and
<code>&lt;dir&gt;/packs</code> for the pack-files to index.
</p>
<div class="paragraph"><p><code>&lt;dir&gt;</code> must be an alternate of the current repository.</p></div>
</dd>
<dt class="hdlist1">
--[no-]progress
@ -781,7 +781,8 @@ git-multi-pack-index(1) Manual Page
<dd>
<p>
Turn progress on/off explicitly. If neither is specified, progress is
shown if standard error is connected to a terminal.
shown if standard error is connected to a terminal. Supported by
sub-commands <code>write</code>, <code>verify</code>, <code>expire</code>, and `repack.
</p>
</dd>
</dl></div>
@ -804,11 +805,46 @@ write
<dd>
<p>
Optionally specify the tie-breaking pack used when
multiple packs contain the same object. If not given,
ties are broken in favor of the pack with the lowest
mtime.
multiple packs contain the same object. <code>&lt;pack&gt;</code> must
contain at least one object. If not given, ties are
broken in favor of the pack with the lowest mtime.
</p>
</dd>
<dt class="hdlist1">
--[no-]bitmap
</dt>
<dd>
<p>
Control whether or not a multi-pack bitmap is written.
</p>
</dd>
<dt class="hdlist1">
--stdin-packs
</dt>
<dd>
<p>
Write a multi-pack index containing only the set of
line-delimited pack index basenames provided over stdin.
</p>
</dd>
<dt class="hdlist1">
--refs-snapshot=&lt;path&gt;
</dt>
<dd>
<p>
With <code>--bitmap</code>, optionally specify a file which
contains a "refs snapshot" taken prior to repacking.
</p>
<div class="paragraph"><p>A reference snapshot is composed of line-delimited OIDs corresponding to
the reference tips, usually taken by <code>git repack</code> prior to generating a
new pack. A line may optionally start with a <code>+</code> character to indicate
that the reference which corresponds to that OID is "preferred" (see
<a href="git-config.html">git-config(1)</a>'s <code>pack.preferBitmapTips</code>.)</p></div>
<div class="paragraph"><p>The file given at <code>&lt;path&gt;</code> is expected to be readable, and can contain
duplicates. (If a given OID is given more than once, it is marked as
preferred if at least one instance of it begins with the special <code>+</code>
marker).</p></div>
</dd>
</dl></div>
</div></div>
</dd>
@ -864,7 +900,7 @@ associated <code>.keep</code> file will not be selected for the batch to repack.
<div class="ulist"><ul>
<li>
<p>
Write a MIDX file for the packfiles in the current .git folder.
Write a MIDX file for the packfiles in the current <code>.git</code> directory.
</p>
<div class="listingblock">
<div class="content">
@ -873,6 +909,16 @@ Write a MIDX file for the packfiles in the current .git folder.
</li>
<li>
<p>
Write a MIDX file for the packfiles in the current <code>.git</code> directory with a
corresponding bitmap.
</p>
<div class="listingblock">
<div class="content">
<pre><code>$ git multi-pack-index write --preferred-pack=&lt;pack&gt; --bitmap</code></pre>
</div></div>
</li>
<li>
<p>
Write a MIDX file for the packfiles in an alternate object store.
</p>
<div class="listingblock">
@ -882,7 +928,7 @@ Write a MIDX file for the packfiles in an alternate object store.
</li>
<li>
<p>
Verify the MIDX file for the packfiles in the current .git folder.
Verify the MIDX file for the packfiles in the current <code>.git</code> directory.
</p>
<div class="listingblock">
<div class="content">
@ -911,7 +957,7 @@ Format</a> for more information on the multi-pack-index feature.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-15 14:04:40 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -881,7 +881,7 @@ not the context.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2019-07-27 10:33:26 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -1344,7 +1344,7 @@ on the <code>notes.rewrite.&lt;command&gt;</code> and <code>notes.rewriteRef</co
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -1929,7 +1929,7 @@ Each commit imported by <em>git p4</em> has a line at the end of the log
<div id="footer">
<div id="footer-text">
Last updated
2021-07-29 20:14:45 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -1352,7 +1352,7 @@ attribute <code>delta</code> set to false.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-07-29 20:14:45 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -819,7 +819,7 @@ git pack-redundant --all | xargs rm</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2017-12-22 18:32:40 PST
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -884,7 +884,7 @@ many other housekeeping tasks.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2019-07-27 10:33:26 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -757,13 +757,16 @@ git-pull(1) Manual Page
<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>Incorporates changes from a remote repository into the current
branch. In its default mode, <code>git pull</code> is shorthand for
<code>git fetch</code> followed by <code>git merge FETCH_HEAD</code>.</p></div>
<div class="paragraph"><p>More precisely, <em>git pull</em> runs <em>git fetch</em> with the given
parameters and calls <em>git merge</em> to merge the retrieved branch
heads into the current branch.
With <code>--rebase</code>, it runs <em>git rebase</em> instead of <em>git merge</em>.</p></div>
<div class="paragraph"><p>Incorporates changes from a remote repository into the current branch.
If the current branch is behind the remote, then by default it will
fast-forward the current branch to match the remote. If the current
branch and the remote have diverged, the user needs to specify how to
reconcile the divergent branches with <code>--rebase</code> or <code>--no-rebase</code> (or
the corresponding configuration option in <code>pull.rebase</code>).</p></div>
<div class="paragraph"><p>More precisely, <code>git pull</code> runs <code>git fetch</code> with the given parameters
and then depending on configuration options or command line flags,
will call either <code>git rebase</code> or <code>git merge</code> to reconcile diverging
branches.</p></div>
<div class="paragraph"><p>&lt;repository&gt; should be the name of a remote repository as
passed to <a href="git-fetch.html">git-fetch(1)</a>. &lt;refspec&gt; can name an
arbitrary remote ref (for example, the name of a tag) or even
@ -861,6 +864,7 @@ pulling or stash them away with <a href="git-stash.html">git-stash(1)</a>.</p></
<p>
Perform the merge and commit the result. This option can
be used to override --no-commit.
Only useful when merging.
</p>
<div class="paragraph"><p>With --no-commit perform the merge and stop just before creating
a merge commit, to give the user a chance to inspect and further
@ -906,18 +910,26 @@ set to <code>no</code> at the beginning of them.</p></div>
</p>
</dd>
<dt class="hdlist1">
--ff
--ff-only
</dt>
<dd>
<p>
Only update to the new history if there is no divergent local
history. This is the default when no method for reconciling
divergent histories is provided (via the --rebase=* flags).
</p>
</dd>
<dt class="hdlist1">
--no-ff
--ff
</dt>
<dt class="hdlist1">
--ff-only
--no-ff
</dt>
<dd>
<p>
Specifies how a merge is handled when the merged-in history is
already a descendant of the current history. <code>--ff</code> is the
When merging rather than rebasing, specifies how a merge is
handled when the merged-in history is already a descendant of
the current history. If merging is requested, <code>--ff</code> is the
default unless merging an annotated (and possibly signed) tag
that is not stored in its natural place in the <code>refs/tags/</code>
hierarchy, in which case <code>--no-ff</code> is assumed.
@ -928,8 +940,6 @@ merge commit). When not possible (when the merged-in history is not a
descendant of the current history), create a merge commit.</p></div>
<div class="paragraph"><p>With <code>--no-ff</code>, create a merge commit in all cases, even when the merge
could instead be resolved as a fast-forward.</p></div>
<div class="paragraph"><p>With <code>--ff-only</code>, resolve the merge as a fast-forward when possible.
When not possible, refuse to merge and exit with a non-zero status.</p></div>
</dd>
<dt class="hdlist1">
-S[&lt;keyid&gt;]
@ -960,6 +970,7 @@ When not possible, refuse to merge and exit with a non-zero status.</p></div>
In addition to branch names, populate the log message with
one-line descriptions from at most &lt;n&gt; actual commits that are being
merged. See also <a href="git-fmt-merge-msg.html">git-fmt-merge-msg(1)</a>.
Only useful when merging.
</p>
<div class="paragraph"><p>With --no-log do not list one-line descriptions from the
actual commits being merged.</p></div>
@ -1022,14 +1033,17 @@ merge.</p></div>
<div class="paragraph"><p>With --no-squash perform the merge and commit the result. This
option can be used to override --squash.</p></div>
<div class="paragraph"><p>With --squash, --commit is not allowed, and will fail.</p></div>
<div class="paragraph"><p>Only useful when merging.</p></div>
</dd>
<dt class="hdlist1">
--no-verify
--[no-]verify
</dt>
<dd>
<p>
This option bypasses the pre-merge and commit-msg hooks.
By default, the pre-merge and commit-msg hooks are run.
When <code>--no-verify</code> is given, these are bypassed.
See also <a href="githooks.html">githooks(5)</a>.
Only useful when merging.
</p>
</dd>
<dt class="hdlist1">
@ -1043,8 +1057,8 @@ option can be used to override --squash.</p></div>
Use the given merge strategy; can be supplied more than
once to specify them in the order they should be tried.
If there is no <code>-s</code> option, a built-in list of strategies
is used instead (<em>git merge-recursive</em> when merging a single
head, <em>git merge-octopus</em> otherwise).
is used instead (<code>ort</code> when merging a single head,
<code>octopus</code> otherwise).
</p>
</dd>
<dt class="hdlist1">
@ -1073,6 +1087,7 @@ option can be used to override --squash.</p></div>
a trusted key. If the tip commit of the side branch is not signed
with a valid key, the merge is aborted.
</p>
<div class="paragraph"><p>Only useful when merging.</p></div>
</dd>
<dt class="hdlist1">
--summary
@ -1114,12 +1129,13 @@ option can be used to override --squash.</p></div>
a very rare occasion, no configuration variable to enable
this by default exists and will not be added.
</p>
<div class="paragraph"><p>Only useful when merging.</p></div>
</dd>
<dt class="hdlist1">
-r
</dt>
<dt class="hdlist1">
--rebase[=false|true|merges|preserve|interactive]
--rebase[=false|true|merges|interactive]
</dt>
<dd>
<p>
@ -1132,9 +1148,6 @@ option can be used to override --squash.</p></div>
<div class="paragraph"><p>When set to <code>merges</code>, rebase using <code>git rebase --rebase-merges</code> so that
the local merge commits are included in the rebase (see
<a href="git-rebase.html">git-rebase(1)</a> for details).</p></div>
<div class="paragraph"><p>When set to <code>preserve</code> (deprecated in favor of <code>merges</code>), rebase with the
<code>--preserve-merges</code> option passed to <code>git rebase</code> so that locally created
merge commits will not be flattened.</p></div>
<div class="paragraph"><p>When false, merge the upstream branch into the current branch.</p></div>
<div class="paragraph"><p>When <code>interactive</code>, enable the interactive mode of rebase.</p></div>
<div class="paragraph"><p>See <code>pull.rebase</code>, <code>branch.&lt;name&gt;.rebase</code> and <code>branch.autoSetupRebase</code> in
@ -1157,7 +1170,7 @@ unless you have read <a href="git-rebase.html">git-rebase(1)</a> carefully.</td>
</dt>
<dd>
<p>
Override earlier --rebase.
This is shorthand for --rebase=false.
</p>
</dd>
</dl></div>
@ -1867,36 +1880,26 @@ can also take their own options, which can be passed by giving <code>-X&lt;optio
arguments to <code>git merge</code> and/or <code>git pull</code>.</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
resolve
ort
</dt>
<dd>
<p>
This can only resolve two heads (i.e. the current branch
and another branch you pulled from) using a 3-way merge
algorithm. It tries to carefully detect criss-cross
merge ambiguities and is considered generally safe and
fast.
This is the default merge strategy when pulling or merging one
branch. This strategy can only resolve two heads using a
3-way merge algorithm. When there is more than one common
ancestor that can be used for 3-way merge, it creates a merged
tree of the common ancestors and uses that as the reference
tree for the 3-way merge. This has been reported to result in
fewer merge conflicts without causing mismerges by tests done
on actual merge commits taken from Linux 2.6 kernel
development history. Additionally this strategy can detect
and handle merges involving renames. It does not make use of
detected copies. The name for this algorithm is an acronym
("Ostensibly Recursive&#8217;s Twin") and came from the fact that it
was written as a replacement for the previous default
algorithm, <code>recursive</code>.
</p>
</dd>
<dt class="hdlist1">
recursive
</dt>
<dd>
<p>
This can only resolve two heads using a 3-way merge
algorithm. When there is more than one common
ancestor that can be used for 3-way merge, it creates a
merged tree of the common ancestors and uses that as
the reference tree for the 3-way merge. This has been
reported to result in fewer merge conflicts without
causing mismerges by tests done on actual merge commits
taken from Linux 2.6 kernel development history.
Additionally this can detect and handle merges involving
renames, but currently cannot make use of detected
copies. This is the default merge strategy when pulling
or merging one branch.
</p>
<div class="paragraph"><p>The <em>recursive</em> strategy can take the following options:</p></div>
<div class="paragraph"><p>The <em>ort</em> strategy can take the following options:</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
ours
@ -1922,29 +1925,6 @@ theirs
</p>
</dd>
<dt class="hdlist1">
patience
</dt>
<dd>
<p>
With this option, <em>merge-recursive</em> spends a little extra time
to avoid mismerges that sometimes occur due to unimportant
matching lines (e.g., braces from distinct functions). Use
this when the branches to be merged have diverged wildly.
See also <a href="git-diff.html">git-diff(1)</a> <code>--patience</code>.
</p>
</dd>
<dt class="hdlist1">
diff-algorithm=[patience|minimal|histogram|myers]
</dt>
<dd>
<p>
Tells <em>merge-recursive</em> to use a different diff algorithm, which
can help avoid mismerges that occur due to unimportant matching
lines (such as braces from distinct functions). See also
<a href="git-diff.html">git-diff(1)</a> <code>--diff-algorithm</code>.
</p>
</dd>
<dt class="hdlist1">
ignore-space-change
</dt>
<dt class="hdlist1">
@ -2007,16 +1987,6 @@ no-renormalize
</p>
</dd>
<dt class="hdlist1">
no-renames
</dt>
<dd>
<p>
Turn off rename detection. This overrides the <code>merge.renames</code>
configuration variable.
See also <a href="git-diff.html">git-diff(1)</a> <code>--no-renames</code>.
</p>
</dd>
<dt class="hdlist1">
find-renames[=&lt;n&gt;]
</dt>
<dd>
@ -2050,6 +2020,72 @@ subtree[=&lt;path&gt;]
</dl></div>
</dd>
<dt class="hdlist1">
recursive
</dt>
<dd>
<p>
This can only resolve two heads using a 3-way merge
algorithm. When there is more than one common
ancestor that can be used for 3-way merge, it creates a
merged tree of the common ancestors and uses that as
the reference tree for the 3-way merge. This has been
reported to result in fewer merge conflicts without
causing mismerges by tests done on actual merge commits
taken from Linux 2.6 kernel development history.
Additionally this can detect and handle merges involving
renames. It does not make use of detected copies. This was
the default strategy for resolving two heads from Git v0.99.9k
until v2.33.0.
</p>
<div class="paragraph"><p>The <em>recursive</em> strategy takes the same options as <em>ort</em>. However,
there are three additional options that <em>ort</em> ignores (not documented
above) that are potentially useful with the <em>recursive</em> strategy:</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
patience
</dt>
<dd>
<p>
Deprecated synonym for <code>diff-algorithm=patience</code>.
</p>
</dd>
<dt class="hdlist1">
diff-algorithm=[patience|minimal|histogram|myers]
</dt>
<dd>
<p>
Use a different diff algorithm while merging, which can help
avoid mismerges that occur due to unimportant matching lines
(such as braces from distinct functions). See also
<a href="git-diff.html">git-diff(1)</a> <code>--diff-algorithm</code>. Note that <code>ort</code>
specifically uses <code>diff-algorithm=histogram</code>, while <code>recursive</code>
defaults to the <code>diff.algorithm</code> config setting.
</p>
</dd>
<dt class="hdlist1">
no-renames
</dt>
<dd>
<p>
Turn off rename detection. This overrides the <code>merge.renames</code>
configuration variable.
See also <a href="git-diff.html">git-diff(1)</a> <code>--no-renames</code>.
</p>
</dd>
</dl></div>
</dd>
<dt class="hdlist1">
resolve
</dt>
<dd>
<p>
This can only resolve two heads (i.e. the current branch
and another branch you pulled from) using a 3-way merge
algorithm. It tries to carefully detect criss-cross
merge ambiguities. It does not handle renames.
</p>
</dd>
<dt class="hdlist1">
octopus
</dt>
<dd>
@ -2079,7 +2115,7 @@ subtree
</dt>
<dd>
<p>
This is a modified recursive strategy. When merging trees A and
This is a modified <code>ort</code> strategy. When merging trees A and
B, if B corresponds to a subtree of A, B is first adjusted to
match the tree structure of A, instead of reading the trees at
the same level. This adjustment is also done to the common
@ -2087,7 +2123,7 @@ subtree
</p>
</dd>
</dl></div>
<div class="paragraph"><p>With the strategies that use 3-way merge (including the default, <em>recursive</em>),
<div class="paragraph"><p>With the strategies that use 3-way merge (including the default, <em>ort</em>),
if a change is made on both branches, but later reverted on one of the
branches, that change will be present in the merged result; some people find
this behavior confusing. It occurs because only the heads and the merge base
@ -2264,7 +2300,7 @@ version.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-08-16 10:13:21 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -1971,7 +1971,7 @@ As in #1, the attacker chooses an object ID X to steal. The victim sends
<div id="footer">
<div id="footer-text">
Last updated
2021-07-29 20:14:45 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -841,7 +841,7 @@ variable.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -1082,7 +1082,7 @@ found in this case will look like this:</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-15 14:04:40 PDT
2021-10-06 09:57:11 PDT
</div>
</div>
</body>

@ -750,8 +750,7 @@ git-read-tree(1) Manual Page
<div class="sectionbody">
<div class="verseblock">
<pre class="content"><em>git read-tree</em> [[-m [--trivial] [--aggressive] | --reset | --prefix=&lt;prefix&gt;]
[-u [--exclude-per-directory=&lt;gitignore&gt;] | -i]]
[--index-output=&lt;file&gt;] [--no-sparse-checkout]
[-u | -i]] [--index-output=&lt;file&gt;] [--no-sparse-checkout]
(--empty | &lt;tree-ish1&gt; [&lt;tree-ish2&gt; [&lt;tree-ish3&gt;]])</pre>
<div class="attribution">
</div></div>
@ -792,8 +791,9 @@ will be in unmerged state when <em>git read-tree</em> returns.</p></div>
<dd>
<p>
Same as -m, except that unmerged entries are discarded instead
of failing. When used with <code>-u</code>, updates leading to loss of
working tree changes will not abort the operation.
of failing. When used with <code>-u</code>, updates leading to loss of
working tree changes or untracked files or directories will not
abort the operation.
</p>
</dd>
<dt class="hdlist1">
@ -893,26 +893,6 @@ when both sides add a path identically. The resolution
</p>
</dd>
<dt class="hdlist1">
--exclude-per-directory=&lt;gitignore&gt;
</dt>
<dd>
<p>
When running the command with <code>-u</code> and <code>-m</code> options, the
merge result may need to overwrite paths that are not
tracked in the current branch. The command usually
refuses to proceed with the merge to avoid losing such a
path. However this safety valve sometimes gets in the
way. For example, it often happens that the other
branch added a file that used to be a generated file in
your branch, and the safety valve triggers when you try
to switch to that branch after you ran <code>make</code> but before
running <code>make clean</code> to remove the generated file. This
option tells the command to read per-directory exclude
file (usually <em>.gitignore</em>) and allows such an untracked
but explicitly ignored file to be overwritten.
</p>
</dd>
<dt class="hdlist1">
--index-output=&lt;file&gt;
</dt>
<dd>
@ -1306,7 +1286,7 @@ support.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -815,9 +815,10 @@ followed by <code>git rebase master</code>. When rebase exits <code>topic</code>
remain the checked-out branch.</p></div>
<div class="paragraph"><p>If the upstream branch already contains a change you have made (e.g.,
because you mailed a patch which was applied upstream), then that commit
will be skipped. For example, running <code>git rebase master</code> on the
following history (in which <code>A'</code> and <code>A</code> introduce the same set of changes,
but have different committer information):</p></div>
will be skipped and warnings will be issued (if the <code>merge</code> backend is
used). For example, running <code>git rebase master</code> on the following
history (in which <code>A'</code> and <code>A</code> introduce the same set of changes, but
have different committer information):</p></div>
<div class="listingblock">
<div class="content">
<pre><code> A---B---C topic
@ -1089,7 +1090,10 @@ see the --empty flag.</p></div>
<div class="paragraph"><p>By default (or if <code>--no-reapply-cherry-picks</code> is given), these commits
will be automatically dropped. Because this necessitates reading all
upstream commits, this can be expensive in repos with a large number
of upstream commits that need to be read.</p></div>
of upstream commits that need to be read. When using the <code>merge</code>
backend, warnings will be issued for each dropped commit (unless
<code>--quiet</code> is given). Advice will also be issued unless
<code>advice.skippedCherryPicks</code> is set to false (see <a href="git-config.html">git-config(1)</a>).</p></div>
<div class="paragraph"><p><code>--reapply-cherry-picks</code> allows rebase to forgo reading all upstream
commits, potentially improving performance.</p></div>
<div class="paragraph"><p>See also INCOMPATIBLE OPTIONS below.</p></div>
@ -1140,9 +1144,7 @@ commits, potentially improving performance.</p></div>
</dt>
<dd>
<p>
Use merging strategies to rebase. When the recursive (default) merge
strategy is used, this allows rebase to be aware of renames on the
upstream side. This is the default.
Using merging strategies to rebase (default).
</p>
<div class="paragraph"><p>Note that a rebase merge works by replaying each commit from the working
branch on top of the &lt;upstream&gt; branch. Because of this, when a merge
@ -1159,9 +1161,8 @@ other words, the sides are swapped.</p></div>
</dt>
<dd>
<p>
Use the given merge strategy.
If there is no <code>-s</code> option <em>git merge-recursive</em> is used
instead. This implies --merge.
Use the given merge strategy, instead of the default <code>ort</code>.
This implies <code>--merge</code>.
</p>
<div class="paragraph"><p>Because <em>git rebase</em> replays each commit from the working branch
on top of the &lt;upstream&gt; branch using the given strategy, using
@ -1179,7 +1180,7 @@ which makes little sense.</p></div>
<p>
Pass the &lt;strategy-option&gt; through to the merge strategy.
This implies <code>--merge</code> and, if no strategy has been
specified, <code>-s recursive</code>. Note the reversal of <em>ours</em> and
specified, <code>-s ort</code>. Note the reversal of <em>ours</em> and
<em>theirs</em> as noted above for the <code>-m</code> option.
</p>
<div class="paragraph"><p>See also INCOMPATIBLE OPTIONS below.</p></div>
@ -1324,7 +1325,8 @@ details).</p></div>
&lt;branch&gt;</code> command (see <a href="git-merge-base.html">git-merge-base(1)</a>). If <em>fork_point</em>
ends up being empty, the &lt;upstream&gt; will be used as a fallback.</p></div>
<div class="paragraph"><p>If &lt;upstream&gt; is given on the command line, then the default is
<code>--no-fork-point</code>, otherwise the default is <code>--fork-point</code>.</p></div>
<code>--no-fork-point</code>, otherwise the default is <code>--fork-point</code>. See also
<code>rebase.forkpoint</code> in <a href="git-config.html">git-config(1)</a>.</p></div>
<div class="paragraph"><p>If your branch was based on &lt;upstream&gt; but &lt;upstream&gt; was rewound and
your branch contains commits which were dropped, this option can be used
with <code>--keep-base</code> in order to drop those commits from your branch.</p></div>
@ -1434,33 +1436,12 @@ i.e. commits that would be excluded by <a href="git-log.html">git-log(1)</a>'s
<code>--ancestry-path</code> option will keep their original ancestry by default. If
the <code>rebase-cousins</code> mode is turned on, such commits are instead rebased
onto <code>&lt;upstream&gt;</code> (or <code>&lt;onto&gt;</code>, if specified).</p></div>
<div class="paragraph"><p>The <code>--rebase-merges</code> mode is similar in spirit to the deprecated
<code>--preserve-merges</code> but works with interactive rebases,
where commits can be reordered, inserted and dropped at will.</p></div>
<div class="paragraph"><p>It is currently only possible to recreate the merge commits using the
<code>recursive</code> merge strategy; Different merge strategies can be used only via
<code>ort</code> merge strategy; different merge strategies can be used only via
explicit <code>exec git merge -s &lt;strategy&gt; [...]</code> commands.</p></div>
<div class="paragraph"><p>See also REBASING MERGES and INCOMPATIBLE OPTIONS below.</p></div>
</dd>
<dt class="hdlist1">
-p
</dt>
<dt class="hdlist1">
--preserve-merges
</dt>
<dd>
<p>
[DEPRECATED: use <code>--rebase-merges</code> instead] Recreate merge commits
instead of flattening the history by replaying commits a merge commit
introduces. Merge conflict resolutions or manual amendments to merge
commits are not preserved.
</p>
<div class="paragraph"><p>This uses the <code>--interactive</code> machinery internally, but combining it
with the <code>--interactive</code> option explicitly is generally not a good
idea unless you know what you are doing (see BUGS below).</p></div>
<div class="paragraph"><p>See also INCOMPATIBLE OPTIONS below.</p></div>
</dd>
<dt class="hdlist1">
-x &lt;cmd&gt;
</dt>
<dt class="hdlist1">
@ -1501,9 +1482,6 @@ without an explicit <code>--interactive</code>.</p></div>
the root commit(s) on a branch. When used with --onto, it
will skip changes already contained in &lt;newbase&gt; (instead of
&lt;upstream&gt;) whereas without --onto it will operate on every change.
When used together with both --onto and --preserve-merges,
<em>all</em> root commits will be rewritten to have &lt;newbase&gt; as parent
instead.
</p>
<div class="paragraph"><p>See also INCOMPATIBLE OPTIONS below.</p></div>
</dd>
@ -1624,11 +1602,6 @@ start would be overridden by the presence of
</li>
<li>
<p>
--preserve-merges
</p>
</li>
<li>
<p>
--interactive
</p>
</li>
@ -1667,41 +1640,6 @@ start would be overridden by the presence of
<div class="ulist"><ul>
<li>
<p>
--preserve-merges and --interactive
</p>
</li>
<li>
<p>
--preserve-merges and --signoff
</p>
</li>
<li>
<p>
--preserve-merges and --rebase-merges
</p>
</li>
<li>
<p>
--preserve-merges and --empty=
</p>
</li>
<li>
<p>
--preserve-merges and --ignore-whitespace
</p>
</li>
<li>
<p>
--preserve-merges and --committer-date-is-author-date
</p>
</li>
<li>
<p>
--preserve-merges and --ignore-date
</p>
</li>
<li>
<p>
--keep-base and --onto
</p>
</li>
@ -1865,36 +1803,26 @@ can also take their own options, which can be passed by giving <code>-X&lt;optio
arguments to <code>git merge</code> and/or <code>git pull</code>.</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
resolve
ort
</dt>
<dd>
<p>
This can only resolve two heads (i.e. the current branch
and another branch you pulled from) using a 3-way merge
algorithm. It tries to carefully detect criss-cross
merge ambiguities and is considered generally safe and
fast.
This is the default merge strategy when pulling or merging one
branch. This strategy can only resolve two heads using a
3-way merge algorithm. When there is more than one common
ancestor that can be used for 3-way merge, it creates a merged
tree of the common ancestors and uses that as the reference
tree for the 3-way merge. This has been reported to result in
fewer merge conflicts without causing mismerges by tests done
on actual merge commits taken from Linux 2.6 kernel
development history. Additionally this strategy can detect
and handle merges involving renames. It does not make use of
detected copies. The name for this algorithm is an acronym
("Ostensibly Recursive&#8217;s Twin") and came from the fact that it
was written as a replacement for the previous default
algorithm, <code>recursive</code>.
</p>
</dd>
<dt class="hdlist1">
recursive
</dt>
<dd>
<p>
This can only resolve two heads using a 3-way merge
algorithm. When there is more than one common
ancestor that can be used for 3-way merge, it creates a
merged tree of the common ancestors and uses that as
the reference tree for the 3-way merge. This has been
reported to result in fewer merge conflicts without
causing mismerges by tests done on actual merge commits
taken from Linux 2.6 kernel development history.
Additionally this can detect and handle merges involving
renames, but currently cannot make use of detected
copies. This is the default merge strategy when pulling
or merging one branch.
</p>
<div class="paragraph"><p>The <em>recursive</em> strategy can take the following options:</p></div>
<div class="paragraph"><p>The <em>ort</em> strategy can take the following options:</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
ours
@ -1920,29 +1848,6 @@ theirs
</p>
</dd>
<dt class="hdlist1">
patience
</dt>
<dd>
<p>
With this option, <em>merge-recursive</em> spends a little extra time
to avoid mismerges that sometimes occur due to unimportant
matching lines (e.g., braces from distinct functions). Use
this when the branches to be merged have diverged wildly.
See also <a href="git-diff.html">git-diff(1)</a> <code>--patience</code>.
</p>
</dd>
<dt class="hdlist1">
diff-algorithm=[patience|minimal|histogram|myers]
</dt>
<dd>
<p>
Tells <em>merge-recursive</em> to use a different diff algorithm, which
can help avoid mismerges that occur due to unimportant matching
lines (such as braces from distinct functions). See also
<a href="git-diff.html">git-diff(1)</a> <code>--diff-algorithm</code>.
</p>
</dd>
<dt class="hdlist1">
ignore-space-change
</dt>
<dt class="hdlist1">
@ -2005,16 +1910,6 @@ no-renormalize
</p>
</dd>
<dt class="hdlist1">
no-renames
</dt>
<dd>
<p>
Turn off rename detection. This overrides the <code>merge.renames</code>
configuration variable.
See also <a href="git-diff.html">git-diff(1)</a> <code>--no-renames</code>.
</p>
</dd>
<dt class="hdlist1">
find-renames[=&lt;n&gt;]
</dt>
<dd>
@ -2048,6 +1943,72 @@ subtree[=&lt;path&gt;]
</dl></div>
</dd>
<dt class="hdlist1">
recursive
</dt>
<dd>
<p>
This can only resolve two heads using a 3-way merge
algorithm. When there is more than one common
ancestor that can be used for 3-way merge, it creates a
merged tree of the common ancestors and uses that as
the reference tree for the 3-way merge. This has been
reported to result in fewer merge conflicts without
causing mismerges by tests done on actual merge commits
taken from Linux 2.6 kernel development history.
Additionally this can detect and handle merges involving
renames. It does not make use of detected copies. This was
the default strategy for resolving two heads from Git v0.99.9k
until v2.33.0.
</p>
<div class="paragraph"><p>The <em>recursive</em> strategy takes the same options as <em>ort</em>. However,
there are three additional options that <em>ort</em> ignores (not documented
above) that are potentially useful with the <em>recursive</em> strategy:</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
patience
</dt>
<dd>
<p>
Deprecated synonym for <code>diff-algorithm=patience</code>.
</p>
</dd>
<dt class="hdlist1">
diff-algorithm=[patience|minimal|histogram|myers]
</dt>
<dd>
<p>
Use a different diff algorithm while merging, which can help
avoid mismerges that occur due to unimportant matching lines
(such as braces from distinct functions). See also
<a href="git-diff.html">git-diff(1)</a> <code>--diff-algorithm</code>. Note that <code>ort</code>
specifically uses <code>diff-algorithm=histogram</code>, while <code>recursive</code>
defaults to the <code>diff.algorithm</code> config setting.
</p>
</dd>
<dt class="hdlist1">
no-renames
</dt>
<dd>
<p>
Turn off rename detection. This overrides the <code>merge.renames</code>
configuration variable.
See also <a href="git-diff.html">git-diff(1)</a> <code>--no-renames</code>.
</p>
</dd>
</dl></div>
</dd>
<dt class="hdlist1">
resolve
</dt>
<dd>
<p>
This can only resolve two heads (i.e. the current branch
and another branch you pulled from) using a 3-way merge
algorithm. It tries to carefully detect criss-cross
merge ambiguities. It does not handle renames.
</p>
</dd>
<dt class="hdlist1">
octopus
</dt>
<dd>
@ -2077,7 +2038,7 @@ subtree
</dt>
<dd>
<p>
This is a modified recursive strategy. When merging trees A and
This is a modified <code>ort</code> strategy. When merging trees A and
B, if B corresponds to a subtree of A, B is first adjusted to
match the tree structure of A, instead of reading the trees at
the same level. This adjustment is also done to the common
@ -2085,7 +2046,7 @@ subtree
</p>
</dd>
</dl></div>
<div class="paragraph"><p>With the strategies that use 3-way merge (including the default, <em>recursive</em>),
<div class="paragraph"><p>With the strategies that use 3-way merge (including the default, <em>ort</em>),
if a change is made on both branches, but later reverted on one of the
branches, that change will be present in the merged result; some people find
this behavior confusing. It occurs because only the heads and the merge base
@ -2552,12 +2513,16 @@ a lower-case <code>-c</code>, the message will be opened in an editor after a
successful merge so that the user can edit the message.</p></div>
<div class="paragraph"><p>If a <code>merge</code> command fails for any reason other than merge conflicts (i.e.
when the merge operation did not even start), it is rescheduled immediately.</p></div>
<div class="paragraph"><p>At this time, the <code>merge</code> command will <strong>always</strong> use the <code>recursive</code>
merge strategy for regular merges, and <code>octopus</code> for octopus merges,
with no way to choose a different one. To work around
this, an <code>exec</code> command can be used to call <code>git merge</code> explicitly,
using the fact that the labels are worktree-local refs (the ref
<code>refs/rewritten/onto</code> would correspond to the label <code>onto</code>, for example).</p></div>
<div class="paragraph"><p>By default, the <code>merge</code> command will use the <code>ort</code> merge strategy for
regular merges, and <code>octopus</code> for octopus merges. One can specify a
default strategy for all merges using the <code>--strategy</code> argument when
invoking rebase, or can override specific merges in the interactive
list of commands by using an <code>exec</code> command to call <code>git merge</code>
explicitly with a <code>--strategy</code> argument. Note that when calling <code>git
merge</code> explicitly like this, you can make use of the fact that the
labels are worktree-local refs (the ref <code>refs/rewritten/onto</code> would
correspond to the label <code>onto</code>, for example) in order to refer to the
branches you want to merge.</p></div>
<div class="paragraph"><p>Note: the first command (<code>label onto</code>) labels the revision onto which
the commits are rebased; The name <code>onto</code> is just a convention, as a nod
to the <code>--onto</code> option.</p></div>
@ -2728,33 +2693,6 @@ sequence.editor
</div>
</div>
<div class="sect1">
<h2 id="_bugs">BUGS</h2>
<div class="sectionbody">
<div class="paragraph"><p>The todo list presented by the deprecated <code>--preserve-merges --interactive</code>
does not represent the topology of the revision graph (use <code>--rebase-merges</code>
instead). Editing commits and rewording their commit messages should work
fine, but attempts to reorder commits tend to produce counterintuitive results.
Use <code>--rebase-merges</code> in such scenarios instead.</p></div>
<div class="paragraph"><p>For example, an attempt to rearrange</p></div>
<div class="listingblock">
<div class="content">
<pre><code>1 --- 2 --- 3 --- 4 --- 5</code></pre>
</div></div>
<div class="paragraph"><p>to</p></div>
<div class="listingblock">
<div class="content">
<pre><code>1 --- 2 --- 4 --- 3 --- 5</code></pre>
</div></div>
<div class="paragraph"><p>by moving the "pick 4" line will result in the following history:</p></div>
<div class="listingblock">
<div class="content">
<pre><code> 3
/
1 --- 2 --- 4 --- 5</code></pre>
</div></div>
</div>
</div>
<div class="sect1">
<h2 id="_git">GIT</h2>
<div class="sectionbody">
<div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
@ -2765,7 +2703,7 @@ Use <code>--rebase-merges</code> in such scenarios instead.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-08-16 15:21:30 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -788,6 +788,16 @@ its behavior, see <a href="git-config.html">git-config(1)</a>.</p></div>
The repository to sync into.
</p>
</dd>
<dt class="hdlist1">
--http-backend-info-refs
</dt>
<dd>
<p>
Used by <a href="git-http-backend.html">git-http-backend(1)</a> to serve up
<code>$GIT_URL/info/refs?service=git-receive-pack</code> requests. See
<code>--http-backend-info-refs</code> in <a href="git-upload-pack.html">git-upload-pack(1)</a>.
</p>
</dd>
</dl></div>
</div>
</div>
@ -1084,7 +1094,7 @@ The <code>pre-receive</code> hook MUST NOT update any refs to point to
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-11-15 13:27:01 PST
</div>
</div>
</body>

@ -929,7 +929,7 @@ used with <code>expire</code>.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2020-03-10 13:56:38 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

@ -963,7 +963,7 @@ begins with <code>ext::</code>. Examples:</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -843,7 +843,7 @@ GIT_TRANSLOOP_DEBUG
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -750,7 +750,7 @@ link you clicked to get here.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-09-30 23:04:56 PDT
</div>
</div>
</body>

@ -1055,7 +1055,7 @@ $ git merge origin</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
2021-06-13 09:04:30 PDT
2021-11-15 09:20:10 PST
</div>
</div>
</body>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save