summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2024-03-21 16:30:09 -0700
committerJunio C Hamano <gitster@pobox.com>2024-03-21 16:30:09 -0700
commitfd4c4dc9f73ff03dad1eb33a5ec51e32dfcb2b4b (patch)
treee5387f415febd947e7c030cf87b5f5fa643aa17e
parent14bbea308b8f4813af1010e5f9073446365652df (diff)
downloadgit-htmldocs-fd4c4dc9f73ff03dad1eb33a5ec51e32dfcb2b4b.tar.gz
Autogenerated HTML docs for v2.44.0-325-g11c82
-rw-r--r--MyFirstContribution.html2
-rw-r--r--MyFirstObjectWalk.html2
-rw-r--r--RelNotes/2.45.0.txt35
-rw-r--r--ReviewingGuidelines.html2
-rw-r--r--SubmittingPatches.html2
-rw-r--r--ToolsForGit.html2
-rw-r--r--everyday.html2
-rw-r--r--git-clone.html45
-rw-r--r--git-clone.txt30
-rw-r--r--git-config.html5
-rw-r--r--git-fetch.html10
-rw-r--r--git-init.html63
-rw-r--r--git-init.txt54
-rw-r--r--git-pull.html10
-rw-r--r--git-push.html10
-rw-r--r--git-remote-helpers.html2
-rw-r--r--git-status.html4
-rw-r--r--git-status.txt2
-rw-r--r--howto/coordinate-embargoed-releases.html2
-rw-r--r--howto/keep-canonical-history-correct.html4
-rw-r--r--howto/maintain-git.html4
-rw-r--r--howto/new-command.html4
-rw-r--r--howto/rebase-from-internal-branch.html4
-rw-r--r--howto/rebuild-from-update-hook.html4
-rw-r--r--howto/recover-corrupted-blob-object.html4
-rw-r--r--howto/recover-corrupted-object-harder.html4
-rw-r--r--howto/revert-a-faulty-merge.html4
-rw-r--r--howto/revert-branch-rebase.html4
-rw-r--r--howto/separating-topic-branches.html4
-rw-r--r--howto/setup-git-server-over-http.html4
-rw-r--r--howto/update-hook-example.html4
-rw-r--r--howto/use-git-daemon.html4
-rw-r--r--howto/using-merge-subtree.html4
-rw-r--r--howto/using-signed-tag-in-pull-request.html4
-rw-r--r--technical/api-error-handling.html2
-rw-r--r--technical/api-index.html2
-rw-r--r--technical/api-merge.html2
-rw-r--r--technical/api-parse-options.html2
-rw-r--r--technical/api-simple-ipc.html2
-rw-r--r--technical/api-trace2.html2
-rw-r--r--technical/bitmap-format.html2
-rw-r--r--technical/bundle-uri.html2
-rw-r--r--technical/hash-function-transition.html2
-rw-r--r--technical/long-running-process-protocol.html2
-rw-r--r--technical/multi-pack-index.html2
-rw-r--r--technical/pack-heuristics.html2
-rw-r--r--technical/parallel-checkout.html2
-rw-r--r--technical/partial-clone.html2
-rw-r--r--technical/racy-git.html2
-rw-r--r--technical/scalar.html2
-rw-r--r--technical/send-pack-pipeline.html2
-rw-r--r--technical/shallow.html2
-rw-r--r--technical/trivial-merge.html2
-rw-r--r--technical/unit-tests.html2
-rw-r--r--urls.txt12
-rw-r--r--user-manual.html18
-rw-r--r--user-manual.txt36
57 files changed, 273 insertions, 177 deletions
diff --git a/MyFirstContribution.html b/MyFirstContribution.html
index ef14e9e63..d294e7f81 100644
--- a/MyFirstContribution.html
+++ b/MyFirstContribution.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>My First Contribution to the Git Project</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/MyFirstObjectWalk.html b/MyFirstObjectWalk.html
index 68cf5595c..a9c7c2b37 100644
--- a/MyFirstObjectWalk.html
+++ b/MyFirstObjectWalk.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>My First Object Walk</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/RelNotes/2.45.0.txt b/RelNotes/2.45.0.txt
index 16a261315..b780bb89c 100644
--- a/RelNotes/2.45.0.txt
+++ b/RelNotes/2.45.0.txt
@@ -37,6 +37,14 @@ UI, Workflows & Features
* Platform specific tweaks for OS/390 has been added to
config.mak.uname.
+ * Users with safe.bareRepository=explicit can still work from within
+ $GIT_DIR of a seconary worktree (which resides at .git/worktrees/$name/)
+ of the primary worktree without explicitly specifying the $GIT_DIR
+ environment variable or the --git-dir=<path> option.
+
+ * The output format for dates "iso-strict" has been tweaked to show
+ a time in the Zulu timezone with "Z" suffix, instead of "+00:00".
+
Performance, Internal Implementation, Development Support etc.
@@ -70,6 +78,21 @@ Performance, Internal Implementation, Development Support etc.
* Some trace2 events that lacked def_param have learned to show it,
enriching the output.
+ * The parse-options code that deals with abbreviated long option
+ names have been cleaned up.
+
+ * The code in reftable backend that creates new table files works
+ better with the tempfile framework to avoid leaving cruft after a
+ failure.
+
+ * The reftable code has its own custom binary search function whose
+ comparison callback has an unusual interface, which caused the
+ binary search to degenerate into a linear search, which has been
+ corrected.
+
+ * The code to iterate over reflogs in the reftable has been optimized
+ to reduce memory allocation and deallocation.
+
Fixes since v2.44
-----------------
@@ -180,6 +203,17 @@ Fixes since v2.44
variable that is no longer used.
(merge 72a8d3f027 pw/rebase-i-ignore-cherry-pick-help-environment later to maint).
+ * The code to find the effective end of log message can fall into an
+ endless loop, which has been corrected.
+ (merge 2541cba2d6 fs/find-end-of-log-message-fix later to maint).
+
+ * Mark-ups used in the documentation has been improved for
+ consistency.
+ (merge 45d5ed3e50 ja/doc-markup-fixes later to maint).
+
+ * The status.showUntrackedFiles configuration variable was
+ incorrectly documented to accept "false", which has been corrected.
+
* Other code cleanup, docfix, build fix, etc.
(merge f0e578c69c rs/use-xstrncmpz later to maint).
(merge 83e6eb7d7a ba/credential-test-clean-fix later to maint).
@@ -198,3 +232,4 @@ Fixes since v2.44
(merge 5f78d52dce es/config-doc-sort-sections later to maint).
(merge 781fb7b4c2 as/option-names-in-messages later to maint).
(merge 51d41dc243 jk/doc-remote-helpers-markup-fix later to maint).
+ (merge e1aaf309db pb/ci-win-artifact-names-fix later to maint).
diff --git a/ReviewingGuidelines.html b/ReviewingGuidelines.html
index 13ad3a228..80828f7cf 100644
--- a/ReviewingGuidelines.html
+++ b/ReviewingGuidelines.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Reviewing Patches in the Git Project</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/SubmittingPatches.html b/SubmittingPatches.html
index b0f3470d1..79b94d578 100644
--- a/SubmittingPatches.html
+++ b/SubmittingPatches.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Submitting Patches</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/ToolsForGit.html b/ToolsForGit.html
index 67efbb66a..9b4baa934 100644
--- a/ToolsForGit.html
+++ b/ToolsForGit.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Tools for developing Git</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/everyday.html b/everyday.html
index aaba14c44..45f4e4139 100644
--- a/everyday.html
+++ b/everyday.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Everyday Git With 20 Commands Or So</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/git-clone.html b/git-clone.html
index 6e42518f8..8195bf02c 100644
--- a/git-clone.html
+++ b/git-clone.html
@@ -862,9 +862,9 @@ objects from the source repository into a pack in the cloned repository.</p></di
</dt>
<dd>
<p>
- If the reference repository is on the local machine,
+ If the reference <em>&lt;repository&gt;</em> is on the local machine,
automatically setup <code>.git/objects/info/alternates</code> to
- obtain objects from the reference repository. Using
+ obtain objects from the reference <em>&lt;repository&gt;</em>. Using
an already existing repository as an alternate will
require fewer objects to be copied from the repository
being cloned, reducing network and local storage costs.
@@ -956,7 +956,7 @@ objects from the source repository into a pack in the cloned repository.</p></di
<dd>
<p>
Fail if the source repository is a shallow repository.
- The <em>clone.rejectShallow</em> configuration variable can be used to
+ The <code>clone.rejectShallow</code> configuration variable can be used to
specify the default.
</p>
</dd>
@@ -966,8 +966,8 @@ objects from the source repository into a pack in the cloned repository.</p></di
<dd>
<p>
Make a <em>bare</em> Git repository. That is, instead of
- creating <code>&lt;directory&gt;</code> and placing the administrative
- files in <code>&lt;directory&gt;/.git</code>, make the <code>&lt;directory&gt;</code>
+ creating <em>&lt;directory&gt;</em> and placing the administrative
+ files in <code>&lt;directory&gt;/.git</code>, make the <em>&lt;directory&gt;</em>
itself the <code>$GIT_DIR</code>. This obviously implies the <code>--no-checkout</code>
because there is nowhere to check out the working tree.
Also the branch heads at the remote are copied directly
@@ -995,11 +995,11 @@ objects from the source repository into a pack in the cloned repository.</p></di
<p>
Use the partial clone feature and request that the server sends
a subset of reachable objects according to a given object filter.
- When using <code>--filter</code>, the supplied <code>&lt;filter-spec&gt;</code> is used for
+ When using <code>--filter</code>, the supplied <em>&lt;filter-spec&gt;</em> is used for
the partial clone filter. For example, <code>--filter=blob:none</code> will
filter out all blobs (file contents) until needed by Git. Also,
<code>--filter=blob:limit=&lt;size&gt;</code> will filter out all blobs of size
- at least <code>&lt;size&gt;</code>. For more details on filter specifications, see
+ at least <em>&lt;size&gt;</em>. For more details on filter specifications, see
the <code>--filter</code> option in <a href="git-rev-list.html">git-rev-list(1)</a>.
</p>
</dd>
@@ -1035,7 +1035,7 @@ objects from the source repository into a pack in the cloned repository.</p></di
<dd>
<p>
Instead of using the remote name <code>origin</code> to keep track of the upstream
- repository, use <code>&lt;name&gt;</code>. Overrides <code>clone.defaultRemoteName</code> from the
+ repository, use <em>&lt;name&gt;</em>. Overrides <code>clone.defaultRemoteName</code> from the
config.
</p>
</dd>
@@ -1048,7 +1048,7 @@ objects from the source repository into a pack in the cloned repository.</p></di
<dd>
<p>
Instead of pointing the newly created HEAD to the branch pointed
- to by the cloned repository&#8217;s HEAD, point to <code>&lt;name&gt;</code> branch
+ to by the cloned repository&#8217;s HEAD, point to <em>&lt;name&gt;</em> branch
instead. In a non-bare repository, this is the branch that will
be checked out.
<code>--branch</code> can also take tags and detaches the HEAD at that commit
@@ -1088,7 +1088,7 @@ objects from the source repository into a pack in the cloned repository.</p></di
Set a configuration variable in the newly-created repository;
this takes effect immediately after the repository is
initialized, but before the remote history is fetched or any
- files checked out. The key is in the same format as expected by
+ files checked out. The <em>&lt;key&gt;</em> is in the same format as expected by
<a href="git-config.html">git-config(1)</a> (e.g., <code>core.eol=true</code>). If multiple
values are given for the same key, each value will be written to
the config file. This makes it safe, for example, to add
@@ -1140,7 +1140,7 @@ corresponding <code>--mirror</code> and <code>--no-tags</code> options instead.<
branch remote&#8217;s <code>HEAD</code> points at.
Further fetches into the resulting repository will only update the
remote-tracking branch for the branch this option was used for the
- initial cloning. If the HEAD at the remote did not point at any
+ initial cloning. If the <code>HEAD</code> at the remote did not point at any
branch when <code>--single-branch</code> clone was made, no remote-tracking
branch is created.
</p>
@@ -1167,7 +1167,7 @@ branch of some repository for search indexing.</p></div>
<dd>
<p>
After the clone is created, initialize and clone submodules
- within based on the provided pathspec. If no pathspec is
+ within based on the provided <em>&lt;pathspec&gt;</em>. If no <em>=&lt;pathspec&gt;</em> is
provided, all submodules are initialized and cloned.
This option can be given multiple times for pathspecs consisting
of multiple entries. The resulting clone has <code>submodule.active</code> set to
@@ -1250,7 +1250,7 @@ Specify the given ref storage format for the repository. The valid values are:
</dt>
<dd>
<p>
- The (possibly remote) repository to clone from. See the
+ The (possibly remote) <em>&lt;repository&gt;</em> to clone from. See the
<a href="#URLS">GIT URLS</a> section below for more information on specifying
repositories.
</p>
@@ -1261,7 +1261,7 @@ Specify the given ref storage format for the repository. The valid values are:
<dd>
<p>
The name of a new directory to clone into. The "humanish"
- part of the source repository is used if no directory is
+ part of the source repository is used if no <em>&lt;directory&gt;</em> is
explicitly given (<code>repo</code> for <code>/path/to/repo.git</code> and <code>foo</code>
for <code>host.xz:foo/.git</code>). Cloning into an existing directory
is only allowed if the directory is empty.
@@ -1273,7 +1273,7 @@ Specify the given ref storage format for the repository. The valid values are:
<dd>
<p>
Before fetching from the remote, fetch a bundle from the given
- <code>&lt;uri&gt;</code> and unbundle the data into the local repository. The refs
+ <em>&lt;uri&gt;</em> and unbundle the data into the local repository. The refs
in the bundle will be stored under the hidden <code>refs/bundle/*</code>
namespace. This option is incompatible with <code>--depth</code>,
<code>--shallow-since</code>, and <code>--shallow-exclude</code>.
@@ -1363,21 +1363,21 @@ file:///path/to/repo.git/
</li>
</ul></div>
<div class="paragraph"><p>These two syntaxes are mostly equivalent, except the former implies
---local option.</p></div>
-<div class="paragraph"><p><em>git clone</em>, <em>git fetch</em> and <em>git pull</em>, but not <em>git push</em>, will also
+<code>--local</code> option.</p></div>
+<div class="paragraph"><p><code>git clone</code>, <code>git fetch</code> and <code>git pull</code>, but not <code>git push</code>, will also
accept a suitable bundle file. See <a href="git-bundle.html">git-bundle(1)</a>.</p></div>
<div class="paragraph"><p>When Git doesn&#8217;t know how to handle a certain transport protocol, it
-attempts to use the <em>remote-&lt;transport&gt;</em> remote helper, if one
+attempts to use the <code>remote-&lt;transport&gt;</code> remote helper, if one
exists. To explicitly request a remote helper, the following syntax
may be used:</p></div>
<div class="ulist"><ul>
<li>
<p>
-&lt;transport&gt;::&lt;address&gt;
+<em>&lt;transport&gt;</em>::_&lt;address&gt;_
</p>
</li>
</ul></div>
-<div class="paragraph"><p>where &lt;address&gt; may be a path, a server and path, or an arbitrary
+<div class="paragraph"><p>where <em>&lt;address&gt;</em> may be a path, a server and path, or an arbitrary
URL-like string recognized by the specific remote helper being
invoked. See <a href="gitremote-helpers.html">gitremote-helpers(7)</a> for details.</p></div>
<div class="paragraph"><p>If there are a large number of similarly-named remote repositories and
@@ -1478,8 +1478,7 @@ init.templateDir
</dt>
<dd>
<p>
- Specify the directory from which templates will be copied.
- (See the "TEMPLATE DIRECTORY" section of <a href="git-init.html">git-init(1)</a>.)
+ Specify the directory from which templates will be copied. (See the "TEMPLATE DIRECTORY" section of <a href="git-init.html">git-init(1)</a>.)
</p>
</dd>
<dt class="hdlist1">
@@ -1534,7 +1533,7 @@ clone.filterSubmodules
<div id="footer">
<div id="footer-text">
Last updated
- 2024-03-01 17:30:58 PST
+ 2024-03-21 16:28:38 PDT
</div>
</div>
</body>
diff --git a/git-clone.txt b/git-clone.txt
index 0c07720c6..f90977a85 100644
--- a/git-clone.txt
+++ b/git-clone.txt
@@ -102,9 +102,9 @@ its source repository, you can simply run `git repack -a` to copy all
objects from the source repository into a pack in the cloned repository.
--reference[-if-able] <repository>::
- If the reference repository is on the local machine,
+ If the reference _<repository>_ is on the local machine,
automatically setup `.git/objects/info/alternates` to
- obtain objects from the reference repository. Using
+ obtain objects from the reference _<repository>_. Using
an already existing repository as an alternate will
require fewer objects to be copied from the repository
being cloned, reducing network and local storage costs.
@@ -156,13 +156,13 @@ objects from the source repository into a pack in the cloned repository.
--[no-]reject-shallow::
Fail if the source repository is a shallow repository.
- The 'clone.rejectShallow' configuration variable can be used to
+ The `clone.rejectShallow` configuration variable can be used to
specify the default.
--bare::
Make a 'bare' Git repository. That is, instead of
- creating `<directory>` and placing the administrative
- files in `<directory>/.git`, make the `<directory>`
+ creating _<directory>_ and placing the administrative
+ files in `<directory>/.git`, make the _<directory>_
itself the `$GIT_DIR`. This obviously implies the `--no-checkout`
because there is nowhere to check out the working tree.
Also the branch heads at the remote are copied directly
@@ -180,11 +180,11 @@ objects from the source repository into a pack in the cloned repository.
--filter=<filter-spec>::
Use the partial clone feature and request that the server sends
a subset of reachable objects according to a given object filter.
- When using `--filter`, the supplied `<filter-spec>` is used for
+ When using `--filter`, the supplied _<filter-spec>_ is used for
the partial clone filter. For example, `--filter=blob:none` will
filter out all blobs (file contents) until needed by Git. Also,
`--filter=blob:limit=<size>` will filter out all blobs of size
- at least `<size>`. For more details on filter specifications, see
+ at least _<size>_. For more details on filter specifications, see
the `--filter` option in linkgit:git-rev-list[1].
--also-filter-submodules::
@@ -203,13 +203,13 @@ objects from the source repository into a pack in the cloned repository.
-o <name>::
--origin <name>::
Instead of using the remote name `origin` to keep track of the upstream
- repository, use `<name>`. Overrides `clone.defaultRemoteName` from the
+ repository, use _<name>_. Overrides `clone.defaultRemoteName` from the
config.
-b <name>::
--branch <name>::
Instead of pointing the newly created HEAD to the branch pointed
- to by the cloned repository's HEAD, point to `<name>` branch
+ to by the cloned repository's HEAD, point to _<name>_ branch
instead. In a non-bare repository, this is the branch that will
be checked out.
`--branch` can also take tags and detaches the HEAD at that commit
@@ -230,7 +230,7 @@ objects from the source repository into a pack in the cloned repository.
Set a configuration variable in the newly-created repository;
this takes effect immediately after the repository is
initialized, but before the remote history is fetched or any
- files checked out. The key is in the same format as expected by
+ files checked out. The _<key>_ is in the same format as expected by
linkgit:git-config[1] (e.g., `core.eol=true`). If multiple
values are given for the same key, each value will be written to
the config file. This makes it safe, for example, to add
@@ -263,7 +263,7 @@ corresponding `--mirror` and `--no-tags` options instead.
branch remote's `HEAD` points at.
Further fetches into the resulting repository will only update the
remote-tracking branch for the branch this option was used for the
- initial cloning. If the HEAD at the remote did not point at any
+ initial cloning. If the `HEAD` at the remote did not point at any
branch when `--single-branch` clone was made, no remote-tracking
branch is created.
@@ -281,7 +281,7 @@ branch of some repository for search indexing.
--recurse-submodules[=<pathspec>]::
After the clone is created, initialize and clone submodules
- within based on the provided pathspec. If no pathspec is
+ within based on the provided _<pathspec>_. If no _=<pathspec>_ is
provided, all submodules are initialized and cloned.
This option can be given multiple times for pathspecs consisting
of multiple entries. The resulting clone has `submodule.active` set to
@@ -323,20 +323,20 @@ include::ref-storage-format.txt[]
Defaults to the `submodule.fetchJobs` option.
<repository>::
- The (possibly remote) repository to clone from. See the
+ The (possibly remote) _<repository>_ to clone from. See the
<<URLS,GIT URLS>> section below for more information on specifying
repositories.
<directory>::
The name of a new directory to clone into. The "humanish"
- part of the source repository is used if no directory is
+ part of the source repository is used if no _<directory>_ is
explicitly given (`repo` for `/path/to/repo.git` and `foo`
for `host.xz:foo/.git`). Cloning into an existing directory
is only allowed if the directory is empty.
--bundle-uri=<uri>::
Before fetching from the remote, fetch a bundle from the given
- `<uri>` and unbundle the data into the local repository. The refs
+ _<uri>_ and unbundle the data into the local repository. The refs
in the bundle will be stored under the hidden `refs/bundle/*`
namespace. This option is incompatible with `--depth`,
`--shallow-since`, and `--shallow-exclude`.
diff --git a/git-config.html b/git-config.html
index a8c37bda9..101cfd1d6 100644
--- a/git-config.html
+++ b/git-config.html
@@ -7865,13 +7865,14 @@ index.skipHash
refuse to parse the index and Git clients older than 2.40.0 will report an
error during <code>git fsck</code>.</p></div>
</dd>
+</dl></div>
+<div class="dlist"><dl>
<dt class="hdlist1">
init.templateDir
</dt>
<dd>
<p>
- Specify the directory from which templates will be copied.
- (See the "TEMPLATE DIRECTORY" section of <a href="git-init.html">git-init(1)</a>.)
+ Specify the directory from which templates will be copied. (See the "TEMPLATE DIRECTORY" section of <a href="git-init.html">git-init(1)</a>.)
</p>
</dd>
<dt class="hdlist1">
diff --git a/git-fetch.html b/git-fetch.html
index c026f417a..911f2cf73 100644
--- a/git-fetch.html
+++ b/git-fetch.html
@@ -1511,22 +1511,22 @@ file:///path/to/repo.git/
</li>
</ul></div>
<div class="paragraph"><p>These two syntaxes are mostly equivalent, except when cloning, when
-the former implies --local option. See <a href="git-clone.html">git-clone(1)</a> for
+the former implies <code>--local</code> option. See <a href="git-clone.html">git-clone(1)</a> for
details.</p></div>
-<div class="paragraph"><p><em>git clone</em>, <em>git fetch</em> and <em>git pull</em>, but not <em>git push</em>, will also
+<div class="paragraph"><p><code>git clone</code>, <code>git fetch</code> and <code>git pull</code>, but not <code>git push</code>, will also
accept a suitable bundle file. See <a href="git-bundle.html">git-bundle(1)</a>.</p></div>
<div class="paragraph"><p>When Git doesn&#8217;t know how to handle a certain transport protocol, it
-attempts to use the <em>remote-&lt;transport&gt;</em> remote helper, if one
+attempts to use the <code>remote-&lt;transport&gt;</code> remote helper, if one
exists. To explicitly request a remote helper, the following syntax
may be used:</p></div>
<div class="ulist"><ul>
<li>
<p>
-&lt;transport&gt;::&lt;address&gt;
+<em>&lt;transport&gt;</em>::_&lt;address&gt;_
</p>
</li>
</ul></div>
-<div class="paragraph"><p>where &lt;address&gt; may be a path, a server and path, or an arbitrary
+<div class="paragraph"><p>where <em>&lt;address&gt;</em> may be a path, a server and path, or an arbitrary
URL-like string recognized by the specific remote helper being
invoked. See <a href="gitremote-helpers.html">gitremote-helpers(7)</a> for details.</p></div>
<div class="paragraph"><p>If there are a large number of similarly-named remote repositories and
diff --git a/git-init.html b/git-init.html
index d289f2584..51c139e95 100644
--- a/git-init.html
+++ b/git-init.html
@@ -772,10 +772,10 @@ to use instead of <code>./.git</code> for the base of the repository.</p></div>
<code>$GIT_OBJECT_DIRECTORY</code> environment variable then the sha1 directories
are created underneath; otherwise, the default <code>$GIT_DIR/objects</code>
directory is used.</p></div>
-<div class="paragraph"><p>Running <em>git init</em> in an existing repository is safe. It will not
+<div class="paragraph"><p>Running <code>git init</code> in an existing repository is safe. It will not
overwrite things that are already there. The primary reason for
-rerunning <em>git init</em> is to pick up newly added templates (or to move
-the repository to another place if --separate-git-dir is given).</p></div>
+rerunning <code>git init</code> is to pick up newly added templates (or to move
+the repository to another place if <code>--separate-git-dir</code> is given).</p></div>
</div>
</div>
<div class="sect1">
@@ -807,8 +807,8 @@ current working directory.
</dt>
<dd>
<p>
-Specify the given object format (hash algorithm) for the repository. The valid
-values are <em>sha1</em> and (if enabled) <em>sha256</em>. <em>sha1</em> is the default.
+Specify the given object <em>&lt;format&gt;</em> (hash algorithm) for the repository. The valid
+values are <code>sha1</code> and (if enabled) <code>sha256</code>. <code>sha1</code> is the default.
</p>
<div class="paragraph"><p>Note: At present, there is no interoperability between SHA-256
repositories and SHA-1 repositories.</p></div>
@@ -826,7 +826,7 @@ without data loss.</p></div>
</dt>
<dd>
<p>
-Specify the given ref storage format for the repository. The valid values are:
+Specify the given ref storage <em>&lt;format&gt;</em> for the repository. The valid values are:
</p>
<div class="ulist"><ul>
<li>
@@ -871,7 +871,7 @@ repository.
</dt>
<dd>
<p>
-Use the specified name for the initial branch in the newly created
+Use <em>&lt;branch-name&gt;</em> for the initial branch in the newly created
repository. If not specified, fall back to the default name (currently
<code>master</code>, but this is subject to change in the future; the name can be
customized via the <code>init.defaultBranch</code> configuration variable).
@@ -884,18 +884,21 @@ customized via the <code>init.defaultBranch</code> configuration variable).
<p>
Specify that the Git repository is to be shared amongst several users. This
allows users belonging to the same group to push into that
-repository. When specified, the config variable "core.sharedRepository" is
+repository. When specified, the config variable <code>core.sharedRepository</code> is
set so that files and directories under <code>$GIT_DIR</code> are created with the
requested permissions. When not specified, Git will use permissions reported
-by umask(2).
+by <code>umask(2)</code>.
</p>
-<div class="paragraph"><p>The option can have the following values, defaulting to <em>group</em> if no value
+<div class="paragraph"><p>The option can have the following values, defaulting to <code>group</code> if no value
is given:</p></div>
<div class="openblock">
<div class="content">
<div class="dlist"><dl>
<dt class="hdlist1">
-<em>umask</em> (or <em>false</em>)
+umask
+</dt>
+<dt class="hdlist1">
+false
</dt>
<dd>
<p>
@@ -904,36 +907,45 @@ specified.
</p>
</dd>
<dt class="hdlist1">
-<em>group</em> (or <em>true</em>)
+group
+</dt>
+<dt class="hdlist1">
+true
</dt>
<dd>
<p>
Make the repository group-writable, (and g+sx, since the git group may not be
the primary group of all users). This is used to loosen the permissions of an
otherwise safe umask(2) value. Note that the umask still applies to the other
-permission bits (e.g. if umask is <em>0022</em>, using <em>group</em> will not remove read
-privileges from other (non-group) users). See <em>0xxx</em> for how to exactly specify
+permission bits (e.g. if umask is <code>0022</code>, using <code>group</code> will not remove read
+privileges from other (non-group) users). See <code>0xxx</code> for how to exactly specify
the repository permissions.
</p>
</dd>
<dt class="hdlist1">
-<em>all</em> (or <em>world</em> or <em>everybody</em>)
+all
+</dt>
+<dt class="hdlist1">
+world
+</dt>
+<dt class="hdlist1">
+everybody
</dt>
<dd>
<p>
-Same as <em>group</em>, but make the repository readable by all users.
+Same as <code>group</code>, but make the repository readable by all users.
</p>
</dd>
<dt class="hdlist1">
-<em>&lt;perm&gt;</em>
+&lt;perm&gt;
</dt>
<dd>
<p>
<em>&lt;perm&gt;</em> is a 3-digit octal number prefixed with &#8216;0` and each file
-will have mode <em>&lt;perm&gt;</em>. <em>&lt;perm&gt;</em> will override users&#8217; umask(2)
-value (and not only loosen permissions as <em>group</em> and <em>all</em>
-do). <em>0640</em> will create a repository which is group-readable, but
-not group-writable or accessible to others. <em>0660</em> will create a repo
+will have mode <em>&lt;perm&gt;</em>. <em>&lt;perm&gt;</em> will override users&#8217;<code>umask(2)</code>
+value (and not only loosen permissions as <code>group</code> and <code>all</code>
+do). <code>0640</code> will create a repository which is group-readable, but
+not group-writable or accessible to others. <code>0660</code> will create a repo
that is readable and writable to the current user and group, but
inaccessible to others (directories and executable files get their
<code>x</code> bit from the <code>r</code> bit for corresponding classes of users).
@@ -946,7 +958,7 @@ inaccessible to others (directories and executable files get their
<div class="paragraph"><p>By default, the configuration flag <code>receive.denyNonFastForwards</code> is enabled
in shared repositories, so that you cannot force a non fast-forwarding push
into it.</p></div>
-<div class="paragraph"><p>If you provide a <em>directory</em>, the command is run inside it. If this directory
+<div class="paragraph"><p>If you provide a <em>&lt;directory&gt;</em>, the command is run inside it. If this directory
does not exist, it will be created.</p></div>
</div>
</div>
@@ -1003,7 +1015,7 @@ $ git commit <b>&lt;3&gt;</b></code></pre>
<div class="colist arabic"><ol>
<li>
<p>
-Create a /path/to/my/codebase/.git directory.
+Create a <code>/path/to/my/codebase/.git</code> directory.
</p>
</li>
<li>
@@ -1033,8 +1045,7 @@ init.templateDir
</dt>
<dd>
<p>
- Specify the directory from which templates will be copied.
- (See the "TEMPLATE DIRECTORY" section of <a href="git-init.html">git-init(1)</a>.)
+ Specify the directory from which templates will be copied.
</p>
</dd>
<dt class="hdlist1">
@@ -1060,7 +1071,7 @@ init.defaultBranch
<div id="footer">
<div id="footer-text">
Last updated
- 2024-01-16 12:41:37 PST
+ 2024-03-21 16:28:38 PDT
</div>
</div>
</body>
diff --git a/git-init.txt b/git-init.txt
index e8dc645bb..2f864e11e 100644
--- a/git-init.txt
+++ b/git-init.txt
@@ -33,10 +33,10 @@ If the object storage directory is specified via the
are created underneath; otherwise, the default `$GIT_DIR/objects`
directory is used.
-Running 'git init' in an existing repository is safe. It will not
+Running `git init` in an existing repository is safe. It will not
overwrite things that are already there. The primary reason for
-rerunning 'git init' is to pick up newly added templates (or to move
-the repository to another place if --separate-git-dir is given).
+rerunning `git init` is to pick up newly added templates (or to move
+the repository to another place if `--separate-git-dir` is given).
OPTIONS
-------
@@ -53,14 +53,14 @@ current working directory.
--object-format=<format>::
-Specify the given object format (hash algorithm) for the repository. The valid
-values are 'sha1' and (if enabled) 'sha256'. 'sha1' is the default.
+Specify the given object _<format>_ (hash algorithm) for the repository. The valid
+values are `sha1` and (if enabled) `sha256`. `sha1` is the default.
+
include::object-format-disclaimer.txt[]
--ref-format=<format>::
-Specify the given ref storage format for the repository. The valid values are:
+Specify the given ref storage _<format>_ for the repository. The valid values are:
+
include::ref-storage-format.txt[]
@@ -81,7 +81,7 @@ If this is a reinitialization, the repository will be moved to the specified pat
-b <branch-name>::
--initial-branch=<branch-name>::
-Use the specified name for the initial branch in the newly created
+Use _<branch-name>_ for the initial branch in the newly created
repository. If not specified, fall back to the default name (currently
`master`, but this is subject to change in the future; the name can be
customized via the `init.defaultBranch` configuration variable).
@@ -90,40 +90,44 @@ customized via the `init.defaultBranch` configuration variable).
Specify that the Git repository is to be shared amongst several users. This
allows users belonging to the same group to push into that
-repository. When specified, the config variable "core.sharedRepository" is
+repository. When specified, the config variable `core.sharedRepository` is
set so that files and directories under `$GIT_DIR` are created with the
requested permissions. When not specified, Git will use permissions reported
-by umask(2).
+by `umask(2)`.
+
-The option can have the following values, defaulting to 'group' if no value
+The option can have the following values, defaulting to `group` if no value
is given:
+
--
-'umask' (or 'false')::
+umask::
+false::
Use permissions reported by umask(2). The default, when `--shared` is not
specified.
-'group' (or 'true')::
+group::
+true::
Make the repository group-writable, (and g+sx, since the git group may not be
the primary group of all users). This is used to loosen the permissions of an
otherwise safe umask(2) value. Note that the umask still applies to the other
-permission bits (e.g. if umask is '0022', using 'group' will not remove read
-privileges from other (non-group) users). See '0xxx' for how to exactly specify
+permission bits (e.g. if umask is `0022`, using `group` will not remove read
+privileges from other (non-group) users). See `0xxx` for how to exactly specify
the repository permissions.
-'all' (or 'world' or 'everybody')::
+all::
+world::
+everybody::
-Same as 'group', but make the repository readable by all users.
+Same as `group`, but make the repository readable by all users.
-'<perm>'::
+<perm>::
-'<perm>' is a 3-digit octal number prefixed with `0` and each file
-will have mode '<perm>'. '<perm>' will override users' umask(2)
-value (and not only loosen permissions as 'group' and 'all'
-do). '0640' will create a repository which is group-readable, but
-not group-writable or accessible to others. '0660' will create a repo
+_<perm>_ is a 3-digit octal number prefixed with `0` and each file
+will have mode _<perm>_. _<perm>_ will override users'`umask(2)`
+value (and not only loosen permissions as `group` and `all`
+do). `0640` will create a repository which is group-readable, but
+not group-writable or accessible to others. `0660` will create a repo
that is readable and writable to the current user and group, but
inaccessible to others (directories and executable files get their
`x` bit from the `r` bit for corresponding classes of users).
@@ -133,7 +137,7 @@ By default, the configuration flag `receive.denyNonFastForwards` is enabled
in shared repositories, so that you cannot force a non fast-forwarding push
into it.
-If you provide a 'directory', the command is run inside it. If this directory
+If you provide a _<directory>_, the command is run inside it. If this directory
does not exist, it will be created.
TEMPLATE DIRECTORY
@@ -172,7 +176,7 @@ $ git add . <2>
$ git commit <3>
----------------
+
-<1> Create a /path/to/my/codebase/.git directory.
+<1> Create a `/path/to/my/codebase/.git` directory.
<2> Add all existing files to the index.
<3> Record the pristine state as the first commit in the history.
@@ -181,6 +185,8 @@ CONFIGURATION
include::includes/cmd-config-section-all.txt[]
+:git-init:
+
include::config/init.txt[]
GIT
diff --git a/git-pull.html b/git-pull.html
index a3cf05308..60b3080b6 100644
--- a/git-pull.html
+++ b/git-pull.html
@@ -1739,22 +1739,22 @@ file:///path/to/repo.git/
</li>
</ul></div>
<div class="paragraph"><p>These two syntaxes are mostly equivalent, except when cloning, when
-the former implies --local option. See <a href="git-clone.html">git-clone(1)</a> for
+the former implies <code>--local</code> option. See <a href="git-clone.html">git-clone(1)</a> for
details.</p></div>
-<div class="paragraph"><p><em>git clone</em>, <em>git fetch</em> and <em>git pull</em>, but not <em>git push</em>, will also
+<div class="paragraph"><p><code>git clone</code>, <code>git fetch</code> and <code>git pull</code>, but not <code>git push</code>, will also
accept a suitable bundle file. See <a href="git-bundle.html">git-bundle(1)</a>.</p></div>
<div class="paragraph"><p>When Git doesn&#8217;t know how to handle a certain transport protocol, it
-attempts to use the <em>remote-&lt;transport&gt;</em> remote helper, if one
+attempts to use the <code>remote-&lt;transport&gt;</code> remote helper, if one
exists. To explicitly request a remote helper, the following syntax
may be used:</p></div>
<div class="ulist"><ul>
<li>
<p>
-&lt;transport&gt;::&lt;address&gt;
+<em>&lt;transport&gt;</em>::_&lt;address&gt;_
</p>
</li>
</ul></div>
-<div class="paragraph"><p>where &lt;address&gt; may be a path, a server and path, or an arbitrary
+<div class="paragraph"><p>where <em>&lt;address&gt;</em> may be a path, a server and path, or an arbitrary
URL-like string recognized by the specific remote helper being
invoked. See <a href="gitremote-helpers.html">gitremote-helpers(7)</a> for details.</p></div>
<div class="paragraph"><p>If there are a large number of similarly-named remote repositories and
diff --git a/git-push.html b/git-push.html
index 6cd8c752f..fef78f778 100644
--- a/git-push.html
+++ b/git-push.html
@@ -1405,22 +1405,22 @@ file:///path/to/repo.git/
</li>
</ul></div>
<div class="paragraph"><p>These two syntaxes are mostly equivalent, except when cloning, when
-the former implies --local option. See <a href="git-clone.html">git-clone(1)</a> for
+the former implies <code>--local</code> option. See <a href="git-clone.html">git-clone(1)</a> for
details.</p></div>
-<div class="paragraph"><p><em>git clone</em>, <em>git fetch</em> and <em>git pull</em>, but not <em>git push</em>, will also
+<div class="paragraph"><p><code>git clone</code>, <code>git fetch</code> and <code>git pull</code>, but not <code>git push</code>, will also
accept a suitable bundle file. See <a href="git-bundle.html">git-bundle(1)</a>.</p></div>
<div class="paragraph"><p>When Git doesn&#8217;t know how to handle a certain transport protocol, it
-attempts to use the <em>remote-&lt;transport&gt;</em> remote helper, if one
+attempts to use the <code>remote-&lt;transport&gt;</code> remote helper, if one
exists. To explicitly request a remote helper, the following syntax
may be used:</p></div>
<div class="ulist"><ul>
<li>
<p>
-&lt;transport&gt;::&lt;address&gt;
+<em>&lt;transport&gt;</em>::_&lt;address&gt;_
</p>
</li>
</ul></div>
-<div class="paragraph"><p>where &lt;address&gt; may be a path, a server and path, or an arbitrary
+<div class="paragraph"><p>where <em>&lt;address&gt;</em> may be a path, a server and path, or an arbitrary
URL-like string recognized by the specific remote helper being
invoked. See <a href="gitremote-helpers.html">gitremote-helpers(7)</a> for details.</p></div>
<div class="paragraph"><p>If there are a large number of similarly-named remote repositories and
diff --git a/git-remote-helpers.html b/git-remote-helpers.html
index d06a57157..496a3d2d4 100644
--- a/git-remote-helpers.html
+++ b/git-remote-helpers.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>git-remote-helpers</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/git-status.html b/git-status.html
index 92fb4888b..f8cd29158 100644
--- a/git-status.html
+++ b/git-status.html
@@ -1389,7 +1389,7 @@ results, so it could be faster on subsequent runs.</p></div>
<li>
<p>
The <code>--untracked-files=no</code> flag or the
- <code>status.showUntrackedfiles=false</code> config (see above for both):
+ <code>status.showUntrackedFiles=no</code> config (see above for both):
indicate that <code>git status</code> should not report untracked
files. This is the fastest option. <code>git status</code> will not list
the untracked files, so you need to be careful to remember if
@@ -1464,7 +1464,7 @@ normal.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2024-02-08 15:45:59 PST
+ 2024-03-21 16:28:38 PDT
</div>
</div>
</body>
diff --git a/git-status.txt b/git-status.txt
index 4dbb88373..b0f36fabf 100644
--- a/git-status.txt
+++ b/git-status.txt
@@ -472,7 +472,7 @@ again, because your configuration may already be caching `git status`
results, so it could be faster on subsequent runs.
* The `--untracked-files=no` flag or the
- `status.showUntrackedfiles=false` config (see above for both):
+ `status.showUntrackedFiles=no` config (see above for both):
indicate that `git status` should not report untracked
files. This is the fastest option. `git status` will not list
the untracked files, so you need to be careful to remember if
diff --git a/howto/coordinate-embargoed-releases.html b/howto/coordinate-embargoed-releases.html
index 3276b1e55..4b531602c 100644
--- a/howto/coordinate-embargoed-releases.html
+++ b/howto/coordinate-embargoed-releases.html
@@ -1038,7 +1038,7 @@ Thanks,
<div id="footer">
<div id="footer-text">
Last updated
- 2024-03-18 13:11:38 PDT
+ 2024-03-21 16:29:01 PDT
</div>
</div>
</body>
diff --git a/howto/keep-canonical-history-correct.html b/howto/keep-canonical-history-correct.html
index cfe0c1295..4c7cc9df4 100644
--- a/howto/keep-canonical-history-correct.html
+++ b/howto/keep-canonical-history-correct.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Keep authoritative canonical history correct with git pull</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
@@ -939,7 +939,7 @@ tip of your <em>master</em> again and redo the two merges:</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2024-03-18 13:11:37 PDT
+ 2024-03-21 16:29:01 PDT
</div>
</div>
</body>
diff --git a/howto/maintain-git.html b/howto/maintain-git.html
index 871a6d2e5..7a2b64361 100644
--- a/howto/maintain-git.html
+++ b/howto/maintain-git.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to maintain Git</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div class="sect1">
@@ -1479,7 +1479,7 @@ $ git update-ref -d $mf/ai/topic</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
- 2024-03-18 13:11:38 PDT
+ 2024-03-21 16:29:01 PDT
</div>
</div>
</body>
diff --git a/howto/new-command.html b/howto/new-command.html
index 1790f37c9..5bcebaa71 100644
--- a/howto/new-command.html
+++ b/howto/new-command.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to integrate new subcommands</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
@@ -864,7 +864,7 @@ letter [PATCH 0/n].
<div id="footer">
<div id="footer-text">
Last updated
- 2024-03-18 13:11:35 PDT
+ 2024-03-21 16:28:59 PDT
</div>
</div>
</body>
diff --git a/howto/rebase-from-internal-branch.html b/howto/rebase-from-internal-branch.html
index d38ad6658..b5d3f5bb7 100644
--- a/howto/rebase-from-internal-branch.html
+++ b/howto/rebase-from-internal-branch.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to rebase from an internal branch</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
@@ -896,7 +896,7 @@ the #1' commit.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2024-03-18 13:11:37 PDT
+ 2024-03-21 16:29:01 PDT
</div>
</div>
</body>
diff --git a/howto/rebuild-from-update-hook.html b/howto/rebuild-from-update-hook.html
index 73ba7e8bb..70c69994a 100644
--- a/howto/rebuild-from-update-hook.html
+++ b/howto/rebuild-from-update-hook.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to rebuild from update hook</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
@@ -848,7 +848,7 @@ This is still crude and does not protect against simultaneous
<div id="footer">
<div id="footer-text">
Last updated
- 2024-03-18 13:11:37 PDT
+ 2024-03-21 16:29:01 PDT
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-blob-object.html b/howto/recover-corrupted-blob-object.html
index 5a06bb776..e20af0454 100644
--- a/howto/recover-corrupted-blob-object.html
+++ b/howto/recover-corrupted-blob-object.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to recover a corrupted blob object</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
@@ -881,7 +881,7 @@ thing.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2024-03-18 13:11:37 PDT
+ 2024-03-21 16:29:00 PDT
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-object-harder.html b/howto/recover-corrupted-object-harder.html
index b0e295a81..100b2308c 100644
--- a/howto/recover-corrupted-object-harder.html
+++ b/howto/recover-corrupted-object-harder.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to recover an object from scratch</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
@@ -1190,7 +1190,7 @@ int main(int argc, char **argv)
<div id="footer">
<div id="footer-text">
Last updated
- 2024-03-18 13:11:37 PDT
+ 2024-03-21 16:29:01 PDT
</div>
</div>
</body>
diff --git a/howto/revert-a-faulty-merge.html b/howto/revert-a-faulty-merge.html
index 60f850f24..d01b50de3 100644
--- a/howto/revert-a-faulty-merge.html
+++ b/howto/revert-a-faulty-merge.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to revert a faulty merge</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
@@ -1026,7 +1026,7 @@ P---o---o---M---x---x---W---x---M2
<div id="footer">
<div id="footer-text">
Last updated
- 2024-03-18 13:11:37 PDT
+ 2024-03-21 16:29:00 PDT
</div>
</div>
</body>
diff --git a/howto/revert-branch-rebase.html b/howto/revert-branch-rebase.html
index b05e65db0..031214dbd 100644
--- a/howto/revert-branch-rebase.html
+++ b/howto/revert-branch-rebase.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to revert an existing commit</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
@@ -908,7 +908,7 @@ Committed merge 7fb9b7262a1d1e0a47bbfdcbbcf50ce0635d3f8f
<div id="footer">
<div id="footer-text">
Last updated
- 2024-03-18 13:11:35 PDT
+ 2024-03-21 16:29:00 PDT
</div>
</div>
</body>
diff --git a/howto/separating-topic-branches.html b/howto/separating-topic-branches.html
index 910f5e717..65935fa04 100644
--- a/howto/separating-topic-branches.html
+++ b/howto/separating-topic-branches.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to separate topic branches</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
@@ -842,7 +842,7 @@ o---o"master"</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
- 2024-03-18 13:11:37 PDT
+ 2024-03-21 16:29:00 PDT
</div>
</div>
</body>
diff --git a/howto/setup-git-server-over-http.html b/howto/setup-git-server-over-http.html
index 62634c0e5..7742060d9 100644
--- a/howto/setup-git-server-over-http.html
+++ b/howto/setup-git-server-over-http.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to setup Git server over http</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
@@ -1072,7 +1072,7 @@ help diagnosing the problem, but removes security checks.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2024-03-18 13:11:36 PDT
+ 2024-03-21 16:29:00 PDT
</div>
</div>
</body>
diff --git a/howto/update-hook-example.html b/howto/update-hook-example.html
index c6da93fc6..5f1216d37 100644
--- a/howto/update-hook-example.html
+++ b/howto/update-hook-example.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to use the update hook</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
@@ -931,7 +931,7 @@ that JC can make non-fast-forward pushes on it.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2024-03-18 13:11:36 PDT
+ 2024-03-21 16:29:00 PDT
</div>
</div>
</body>
diff --git a/howto/use-git-daemon.html b/howto/use-git-daemon.html
index 88ca012d7..3d79ffdbe 100644
--- a/howto/use-git-daemon.html
+++ b/howto/use-git-daemon.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to use git-daemon</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
@@ -792,7 +792,7 @@ a good practice to put the paths after a "--" separator.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2024-03-18 13:11:36 PDT
+ 2024-03-21 16:29:00 PDT
</div>
</div>
</body>
diff --git a/howto/using-merge-subtree.html b/howto/using-merge-subtree.html
index 6ee70d534..68c22f258 100644
--- a/howto/using-merge-subtree.html
+++ b/howto/using-merge-subtree.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to use the subtree merge strategy</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
@@ -849,7 +849,7 @@ Please note that if the other project merges from you, then it will
<div id="footer">
<div id="footer-text">
Last updated
- 2024-03-18 13:11:36 PDT
+ 2024-03-21 16:29:00 PDT
</div>
</div>
</body>
diff --git a/howto/using-signed-tag-in-pull-request.html b/howto/using-signed-tag-in-pull-request.html
index 3402f5397..aae722138 100644
--- a/howto/using-signed-tag-in-pull-request.html
+++ b/howto/using-signed-tag-in-pull-request.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to use a signed tag in pull requests</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
@@ -953,7 +953,7 @@ as part of the merge commit.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2024-03-18 13:11:36 PDT
+ 2024-03-21 16:29:00 PDT
</div>
</div>
</body>
diff --git a/technical/api-error-handling.html b/technical/api-error-handling.html
index 57227a0d0..8a70666ae 100644
--- a/technical/api-error-handling.html
+++ b/technical/api-error-handling.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Error reporting in git</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/api-index.html b/technical/api-index.html
index ca28ada14..895ecd1e3 100644
--- a/technical/api-index.html
+++ b/technical/api-index.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Git API Documents</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/api-merge.html b/technical/api-merge.html
index 2ae12b8aa..b130786ea 100644
--- a/technical/api-merge.html
+++ b/technical/api-merge.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>merge API</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/api-parse-options.html b/technical/api-parse-options.html
index eaffd28b0..d013b78d0 100644
--- a/technical/api-parse-options.html
+++ b/technical/api-parse-options.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>parse-options API</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/api-simple-ipc.html b/technical/api-simple-ipc.html
index 50f7f1c01..6f086e8f6 100644
--- a/technical/api-simple-ipc.html
+++ b/technical/api-simple-ipc.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Simple-IPC API</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/api-trace2.html b/technical/api-trace2.html
index ef6b2b4b3..e2a86b8da 100644
--- a/technical/api-trace2.html
+++ b/technical/api-trace2.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Trace2 API</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/bitmap-format.html b/technical/bitmap-format.html
index d779ffc75..3a1b9a011 100644
--- a/technical/bitmap-format.html
+++ b/technical/bitmap-format.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>GIT bitmap v1 format</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/technical/bundle-uri.html b/technical/bundle-uri.html
index c5f53fc9f..bc3746d72 100644
--- a/technical/bundle-uri.html
+++ b/technical/bundle-uri.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Bundle URIs</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/hash-function-transition.html b/technical/hash-function-transition.html
index 4b8f8f139..037d72daa 100644
--- a/technical/hash-function-transition.html
+++ b/technical/hash-function-transition.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Git hash function transition</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/technical/long-running-process-protocol.html b/technical/long-running-process-protocol.html
index 5a0b2b74f..4731b15b4 100644
--- a/technical/long-running-process-protocol.html
+++ b/technical/long-running-process-protocol.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Long-running process protocol</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/multi-pack-index.html b/technical/multi-pack-index.html
index a5efcc624..e1905dfe4 100644
--- a/technical/multi-pack-index.html
+++ b/technical/multi-pack-index.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Multi-Pack-Index (MIDX) Design Notes</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/pack-heuristics.html b/technical/pack-heuristics.html
index ea7b1cb07..b1f208edf 100644
--- a/technical/pack-heuristics.html
+++ b/technical/pack-heuristics.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Concerning Git&#8217;s Packing Heuristics</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/parallel-checkout.html b/technical/parallel-checkout.html
index 622c2e176..fba36deb1 100644
--- a/technical/parallel-checkout.html
+++ b/technical/parallel-checkout.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Parallel Checkout Design Notes</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/partial-clone.html b/technical/partial-clone.html
index ff21d4d4c..7ff67a695 100644
--- a/technical/partial-clone.html
+++ b/technical/partial-clone.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Partial Clone Design Notes</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/racy-git.html b/technical/racy-git.html
index 14dd0b352..9dda9a30b 100644
--- a/technical/racy-git.html
+++ b/technical/racy-git.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Use of index and Racy Git problem</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/technical/scalar.html b/technical/scalar.html
index 74dfd2d41..04da07916 100644
--- a/technical/scalar.html
+++ b/technical/scalar.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Scalar</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/send-pack-pipeline.html b/technical/send-pack-pipeline.html
index 96a36ffca..9c696379b 100644
--- a/technical/send-pack-pipeline.html
+++ b/technical/send-pack-pipeline.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Git-send-pack internals</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/technical/shallow.html b/technical/shallow.html
index 44699a40f..43b5ae91d 100644
--- a/technical/shallow.html
+++ b/technical/shallow.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Shallow commits</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/trivial-merge.html b/technical/trivial-merge.html
index 1b9f713df..35a9afe78 100644
--- a/technical/trivial-merge.html
+++ b/technical/trivial-merge.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Trivial merge rules</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/unit-tests.html b/technical/unit-tests.html
index 18efe9ba1..0f98a782a 100644
--- a/technical/unit-tests.html
+++ b/technical/unit-tests.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Unit Testing</h1>
-<span id="revdate">2024-03-18</span>
+<span id="revdate">2024-03-21</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/urls.txt b/urls.txt
index ce671f812..0b9e0c430 100644
--- a/urls.txt
+++ b/urls.txt
@@ -44,26 +44,26 @@ syntaxes may be used:
ifndef::git-clone[]
These two syntaxes are mostly equivalent, except when cloning, when
-the former implies --local option. See linkgit:git-clone[1] for
+the former implies `--local` option. See linkgit:git-clone[1] for
details.
endif::git-clone[]
ifdef::git-clone[]
These two syntaxes are mostly equivalent, except the former implies
---local option.
+`--local` option.
endif::git-clone[]
-'git clone', 'git fetch' and 'git pull', but not 'git push', will also
+`git clone`, `git fetch` and `git pull`, but not `git push`, will also
accept a suitable bundle file. See linkgit:git-bundle[1].
When Git doesn't know how to handle a certain transport protocol, it
-attempts to use the 'remote-<transport>' remote helper, if one
+attempts to use the `remote-<transport>` remote helper, if one
exists. To explicitly request a remote helper, the following syntax
may be used:
-- <transport>::<address>
+- _<transport>_::_<address>_
-where <address> may be a path, a server and path, or an arbitrary
+where _<address>_ may be a path, a server and path, or an arbitrary
URL-like string recognized by the specific remote helper being
invoked. See linkgit:gitremote-helpers[7] for details.
diff --git a/user-manual.html b/user-manual.html
index a3188631b..556a64719 100644
--- a/user-manual.html
+++ b/user-manual.html
@@ -1,5 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Git User Manual</title><link rel="stylesheet" type="text/css" href="docbook-xsl.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="id-1"></a>Git User Manual</h1></div><div><div class="revhistory"><table style="border-style:solid; width:100%;" summary="Revision History"><tr><th align="left" valign="top" colspan="2"><b>Revision History</b></th></tr><tr><td align="left"></td><td align="left">2024-03-18</td></tr></table></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="preface"><a href="#_introduction">Introduction</a></span></dt><dt><span class="chapter"><a href="#repositories-and-branches">1. Repositories and Branches</a></span></dt><dd><dl><dt><span class="section"><a href="#how-to-get-a-git-repository">How to get a Git repository</a></span></dt><dt><span class="section"><a href="#how-to-check-out">How to check out a different version of a project</a></span></dt><dt><span class="section"><a href="#understanding-commits">Understanding History: Commits</a></span></dt><dd><dl><dt><span class="section"><a href="#understanding-reachability">Understanding history: commits, parents, and reachability</a></span></dt><dt><span class="section"><a href="#history-diagrams">Understanding history: History diagrams</a></span></dt><dt><span class="section"><a href="#what-is-a-branch">Understanding history: What is a branch?</a></span></dt></dl></dd><dt><span class="section"><a href="#manipulating-branches">Manipulating branches</a></span></dt><dt><span class="section"><a href="#detached-head">Examining an old version without creating a new branch</a></span></dt><dt><span class="section"><a href="#examining-remote-branches">Examining branches from a remote repository</a></span></dt><dt><span class="section"><a href="#how-git-stores-references">Naming branches, tags, and other references</a></span></dt><dt><span class="section"><a href="#Updating-a-repository-With-git-fetch">Updating a repository with git fetch</a></span></dt><dt><span class="section"><a href="#fetching-branches">Fetching branches from other repositories</a></span></dt></dl></dd><dt><span class="chapter"><a href="#exploring-git-history">2. Exploring Git history</a></span></dt><dd><dl><dt><span class="section"><a href="#using-bisect">How to use bisect to find a regression</a></span></dt><dt><span class="section"><a href="#naming-commits">Naming commits</a></span></dt><dt><span class="section"><a href="#creating-tags">Creating tags</a></span></dt><dt><span class="section"><a href="#browsing-revisions">Browsing revisions</a></span></dt><dt><span class="section"><a href="#generating-diffs">Generating diffs</a></span></dt><dt><span class="section"><a href="#viewing-old-file-versions">Viewing old file versions</a></span></dt><dt><span class="section"><a href="#history-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#counting-commits-on-a-branch">Counting the number of commits on a branch</a></span></dt><dt><span class="section"><a href="#checking-for-equal-branches">Check whether two branches point at the same history</a></span></dt><dt><span class="section"><a href="#finding-tagged-descendants">Find first tagged version including a given fix</a></span></dt><dt><span class="section"><a href="#showing-commits-unique-to-a-branch">Showing commits unique to a given branch</a></span></dt><dt><span class="section"><a href="#making-a-release">Creating a changelog and tarball for a software release</a></span></dt><dt><span class="section"><a href="#Finding-commits-With-given-Content">Finding commits referencing a file with given content</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#Developing-With-git">3. Developing with Git</a></span></dt><dd><dl><dt><span class="section"><a href="#telling-git-your-name">Telling Git your name</a></span></dt><dt><span class="section"><a href="#creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#how-to-make-a-commit">How to make a commit</a></span></dt><dt><span class="section"><a href="#creating-good-commit-messages">Creating good commit messages</a></span></dt><dt><span class="section"><a href="#ignoring-files">Ignoring files</a></span></dt><dt><span class="section"><a href="#how-to-merge">How to merge</a></span></dt><dt><span class="section"><a href="#resolving-a-merge">Resolving a merge</a></span></dt><dd><dl><dt><span class="section"><a href="#conflict-resolution">Getting conflict-resolution help during a merge</a></span></dt></dl></dd><dt><span class="section"><a href="#undoing-a-merge">Undoing a merge</a></span></dt><dt><span class="section"><a href="#fast-forwards">Fast-forward merges</a></span></dt><dt><span class="section"><a href="#fixing-mistakes">Fixing mistakes</a></span></dt><dd><dl><dt><span class="section"><a href="#reverting-a-commit">Fixing a mistake with a new commit</a></span></dt><dt><span class="section"><a href="#fixing-a-mistake-by-rewriting-history">Fixing a mistake by rewriting history</a></span></dt><dt><span class="section"><a href="#checkout-of-path">Checking out an old version of a file</a></span></dt><dt><span class="section"><a href="#interrupted-work">Temporarily setting aside work in progress</a></span></dt></dl></dd><dt><span class="section"><a href="#ensuring-good-performance">Ensuring good performance</a></span></dt><dt><span class="section"><a href="#ensuring-reliability">Ensuring reliability</a></span></dt><dd><dl><dt><span class="section"><a href="#checking-for-corruption">Checking the repository for corruption</a></span></dt><dt><span class="section"><a href="#recovering-lost-changes">Recovering lost changes</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#sharing-development">4. Sharing development with others</a></span></dt><dd><dl><dt><span class="section"><a href="#getting-updates-With-git-pull">Getting updates with git pull</a></span></dt><dt><span class="section"><a href="#submitting-patches">Submitting patches to a project</a></span></dt><dt><span class="section"><a href="#importing-patches">Importing patches to a project</a></span></dt><dt><span class="section"><a href="#public-repositories">Public Git repositories</a></span></dt><dd><dl><dt><span class="section"><a href="#setting-up-a-public-repository">Setting up a public repository</a></span></dt><dt><span class="section"><a href="#exporting-via-git">Exporting a Git repository via the Git protocol</a></span></dt><dt><span class="section"><a href="#exporting-via-http">Exporting a git repository via HTTP</a></span></dt><dt><span class="section"><a href="#pushing-changes-to-a-public-repository">Pushing changes to a public repository</a></span></dt><dt><span class="section"><a href="#forcing-push">What to do when a push fails</a></span></dt><dt><span class="section"><a href="#setting-up-a-shared-repository">Setting up a shared repository</a></span></dt><dt><span class="section"><a href="#setting-up-gitweb">Allowing web browsing of a repository</a></span></dt></dl></dd><dt><span class="section"><a href="#how-to-get-a-git-repository-with-minimal-history">How to get a Git repository with minimal history</a></span></dt><dt><span class="section"><a href="#sharing-development-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#maintaining-topic-branches">Maintaining topic branches for a Linux subsystem maintainer</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#cleaning-up-history">5. Rewriting history and maintaining patch series</a></span></dt><dd><dl><dt><span class="section"><a href="#patch-series">Creating the perfect patch series</a></span></dt><dt><span class="section"><a href="#using-git-rebase">Keeping a patch series up to date using git rebase</a></span></dt><dt><span class="section"><a href="#rewriting-one-commit">Rewriting a single commit</a></span></dt><dt><span class="section"><a href="#reordering-patch-series">Reordering or selecting from a patch series</a></span></dt><dt><span class="section"><a href="#interactive-rebase">Using interactive rebases</a></span></dt><dt><span class="section"><a href="#patch-series-tools">Other tools</a></span></dt><dt><span class="section"><a href="#problems-With-rewriting-history">Problems with rewriting history</a></span></dt><dt><span class="section"><a href="#bisect-merges">Why bisecting merge commits can be harder than bisecting linear history</a></span></dt></dl></dd><dt><span class="chapter"><a href="#advanced-branch-management">6. Advanced branch management</a></span></dt><dd><dl><dt><span class="section"><a href="#fetching-individual-branches">Fetching individual branches</a></span></dt><dt><span class="section"><a href="#fetch-fast-forwards">git fetch and fast-forwards</a></span></dt><dt><span class="section"><a href="#forcing-fetch">Forcing git fetch to do non-fast-forward updates</a></span></dt><dt><span class="section"><a href="#remote-branch-configuration">Configuring remote-tracking branches</a></span></dt></dl></dd><dt><span class="chapter"><a href="#git-concepts">7. Git concepts</a></span></dt><dd><dl><dt><span class="section"><a href="#the-object-database">The Object Database</a></span></dt><dd><dl><dt><span class="section"><a href="#commit-object">Commit Object</a></span></dt><dt><span class="section"><a href="#tree-object">Tree Object</a></span></dt><dt><span class="section"><a href="#blob-object">Blob Object</a></span></dt><dt><span class="section"><a href="#trust">Trust</a></span></dt><dt><span class="section"><a href="#tag-object">Tag Object</a></span></dt><dt><span class="section"><a href="#pack-files">How Git stores objects efficiently: pack files</a></span></dt><dt><span class="section"><a href="#dangling-objects">Dangling objects</a></span></dt><dt><span class="section"><a href="#recovering-from-repository-corruption">Recovering from repository corruption</a></span></dt></dl></dd><dt><span class="section"><a href="#the-index">The index</a></span></dt></dl></dd><dt><span class="chapter"><a href="#submodules">8. Submodules</a></span></dt><dd><dl><dt><span class="section"><a href="#pitfalls-with-submodules">Pitfalls with submodules</a></span></dt></dl></dd><dt><span class="chapter"><a href="#low-level-operations">9. Low-level Git operations</a></span></dt><dd><dl><dt><span class="section"><a href="#object-manipulation">Object access and manipulation</a></span></dt><dt><span class="section"><a href="#the-workflow">The Workflow</a></span></dt><dd><dl><dt><span class="section"><a href="#working-directory-to-index">working directory → index</a></span></dt><dt><span class="section"><a href="#index-to-object-database">index → object database</a></span></dt><dt><span class="section"><a href="#object-database-to-index">object database → index</a></span></dt><dt><span class="section"><a href="#index-to-working-directory">index → working directory</a></span></dt><dt><span class="section"><a href="#tying-it-all-together">Tying it all together</a></span></dt></dl></dd><dt><span class="section"><a href="#examining-the-data">Examining the data</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees">Merging multiple trees</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees-2">Merging multiple trees, continued</a></span></dt></dl></dd><dt><span class="chapter"><a href="#hacking-git">10. Hacking Git</a></span></dt><dd><dl><dt><span class="section"><a href="#object-details">Object storage format</a></span></dt><dt><span class="section"><a href="#birdview-on-the-source-code">A birds-eye view of Git’s source code</a></span></dt></dl></dd><dt><span class="chapter"><a href="#glossary">11. Git Glossary</a></span></dt><dd><dl><dt><span class="section"><a href="#git-explained">Git explained</a></span></dt></dl></dd><dt><span class="appendix"><a href="#git-quick-start">A. Git Quick Reference</a></span></dt><dd><dl><dt><span class="section"><a href="#quick-creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#managing-branches">Managing branches</a></span></dt><dt><span class="section"><a href="#exploring-history">Exploring history</a></span></dt><dt><span class="section"><a href="#making-changes">Making changes</a></span></dt><dt><span class="section"><a href="#merging">Merging</a></span></dt><dt><span class="section"><a href="#sharing-your-changes">Sharing your changes</a></span></dt><dt><span class="section"><a href="#repository-maintenance">Repository maintenance</a></span></dt></dl></dd><dt><span class="appendix"><a href="#todo">B. Notes and todo list for this manual</a></span></dt><dd><dl><dt><span class="section"><a href="#todo-list">Todo list</a></span></dt></dl></dd></dl></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a name="_introduction"></a>Introduction</h1></div></div></div><p>Git is a fast distributed revision control system.</p><p>This manual is designed to be readable by someone with basic UNIX
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Git User Manual</title><link rel="stylesheet" type="text/css" href="docbook-xsl.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="id-1"></a>Git User Manual</h1></div><div><div class="revhistory"><table style="border-style:solid; width:100%;" summary="Revision History"><tr><th align="left" valign="top" colspan="2"><b>Revision History</b></th></tr><tr><td align="left"></td><td align="left">2024-03-21</td></tr></table></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="preface"><a href="#_introduction">Introduction</a></span></dt><dt><span class="chapter"><a href="#repositories-and-branches">1. Repositories and Branches</a></span></dt><dd><dl><dt><span class="section"><a href="#how-to-get-a-git-repository">How to get a Git repository</a></span></dt><dt><span class="section"><a href="#how-to-check-out">How to check out a different version of a project</a></span></dt><dt><span class="section"><a href="#understanding-commits">Understanding History: Commits</a></span></dt><dd><dl><dt><span class="section"><a href="#understanding-reachability">Understanding history: commits, parents, and reachability</a></span></dt><dt><span class="section"><a href="#history-diagrams">Understanding history: History diagrams</a></span></dt><dt><span class="section"><a href="#what-is-a-branch">Understanding history: What is a branch?</a></span></dt></dl></dd><dt><span class="section"><a href="#manipulating-branches">Manipulating branches</a></span></dt><dt><span class="section"><a href="#detached-head">Examining an old version without creating a new branch</a></span></dt><dt><span class="section"><a href="#examining-remote-branches">Examining branches from a remote repository</a></span></dt><dt><span class="section"><a href="#how-git-stores-references">Naming branches, tags, and other references</a></span></dt><dt><span class="section"><a href="#Updating-a-repository-With-git-fetch">Updating a repository with git fetch</a></span></dt><dt><span class="section"><a href="#fetching-branches">Fetching branches from other repositories</a></span></dt></dl></dd><dt><span class="chapter"><a href="#exploring-git-history">2. Exploring Git history</a></span></dt><dd><dl><dt><span class="section"><a href="#using-bisect">How to use bisect to find a regression</a></span></dt><dt><span class="section"><a href="#naming-commits">Naming commits</a></span></dt><dt><span class="section"><a href="#creating-tags">Creating tags</a></span></dt><dt><span class="section"><a href="#browsing-revisions">Browsing revisions</a></span></dt><dt><span class="section"><a href="#generating-diffs">Generating diffs</a></span></dt><dt><span class="section"><a href="#viewing-old-file-versions">Viewing old file versions</a></span></dt><dt><span class="section"><a href="#history-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#counting-commits-on-a-branch">Counting the number of commits on a branch</a></span></dt><dt><span class="section"><a href="#checking-for-equal-branches">Check whether two branches point at the same history</a></span></dt><dt><span class="section"><a href="#finding-tagged-descendants">Find first tagged version including a given fix</a></span></dt><dt><span class="section"><a href="#showing-commits-unique-to-a-branch">Showing commits unique to a given branch</a></span></dt><dt><span class="section"><a href="#making-a-release">Creating a changelog and tarball for a software release</a></span></dt><dt><span class="section"><a href="#Finding-commits-With-given-Content">Finding commits referencing a file with given content</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#Developing-With-git">3. Developing with Git</a></span></dt><dd><dl><dt><span class="section"><a href="#telling-git-your-name">Telling Git your name</a></span></dt><dt><span class="section"><a href="#creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#how-to-make-a-commit">How to make a commit</a></span></dt><dt><span class="section"><a href="#creating-good-commit-messages">Creating good commit messages</a></span></dt><dt><span class="section"><a href="#ignoring-files">Ignoring files</a></span></dt><dt><span class="section"><a href="#how-to-merge">How to merge</a></span></dt><dt><span class="section"><a href="#resolving-a-merge">Resolving a merge</a></span></dt><dd><dl><dt><span class="section"><a href="#conflict-resolution">Getting conflict-resolution help during a merge</a></span></dt></dl></dd><dt><span class="section"><a href="#undoing-a-merge">Undoing a merge</a></span></dt><dt><span class="section"><a href="#fast-forwards">Fast-forward merges</a></span></dt><dt><span class="section"><a href="#fixing-mistakes">Fixing mistakes</a></span></dt><dd><dl><dt><span class="section"><a href="#reverting-a-commit">Fixing a mistake with a new commit</a></span></dt><dt><span class="section"><a href="#fixing-a-mistake-by-rewriting-history">Fixing a mistake by rewriting history</a></span></dt><dt><span class="section"><a href="#checkout-of-path">Checking out an old version of a file</a></span></dt><dt><span class="section"><a href="#interrupted-work">Temporarily setting aside work in progress</a></span></dt></dl></dd><dt><span class="section"><a href="#ensuring-good-performance">Ensuring good performance</a></span></dt><dt><span class="section"><a href="#ensuring-reliability">Ensuring reliability</a></span></dt><dd><dl><dt><span class="section"><a href="#checking-for-corruption">Checking the repository for corruption</a></span></dt><dt><span class="section"><a href="#recovering-lost-changes">Recovering lost changes</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#sharing-development">4. Sharing development with others</a></span></dt><dd><dl><dt><span class="section"><a href="#getting-updates-With-git-pull">Getting updates with git pull</a></span></dt><dt><span class="section"><a href="#submitting-patches">Submitting patches to a project</a></span></dt><dt><span class="section"><a href="#importing-patches">Importing patches to a project</a></span></dt><dt><span class="section"><a href="#public-repositories">Public Git repositories</a></span></dt><dd><dl><dt><span class="section"><a href="#setting-up-a-public-repository">Setting up a public repository</a></span></dt><dt><span class="section"><a href="#exporting-via-git">Exporting a Git repository via the Git protocol</a></span></dt><dt><span class="section"><a href="#exporting-via-http">Exporting a git repository via HTTP</a></span></dt><dt><span class="section"><a href="#pushing-changes-to-a-public-repository">Pushing changes to a public repository</a></span></dt><dt><span class="section"><a href="#forcing-push">What to do when a push fails</a></span></dt><dt><span class="section"><a href="#setting-up-a-shared-repository">Setting up a shared repository</a></span></dt><dt><span class="section"><a href="#setting-up-gitweb">Allowing web browsing of a repository</a></span></dt></dl></dd><dt><span class="section"><a href="#how-to-get-a-git-repository-with-minimal-history">How to get a Git repository with minimal history</a></span></dt><dt><span class="section"><a href="#sharing-development-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#maintaining-topic-branches">Maintaining topic branches for a Linux subsystem maintainer</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#cleaning-up-history">5. Rewriting history and maintaining patch series</a></span></dt><dd><dl><dt><span class="section"><a href="#patch-series">Creating the perfect patch series</a></span></dt><dt><span class="section"><a href="#using-git-rebase">Keeping a patch series up to date using git rebase</a></span></dt><dt><span class="section"><a href="#rewriting-one-commit">Rewriting a single commit</a></span></dt><dt><span class="section"><a href="#reordering-patch-series">Reordering or selecting from a patch series</a></span></dt><dt><span class="section"><a href="#interactive-rebase">Using interactive rebases</a></span></dt><dt><span class="section"><a href="#patch-series-tools">Other tools</a></span></dt><dt><span class="section"><a href="#problems-With-rewriting-history">Problems with rewriting history</a></span></dt><dt><span class="section"><a href="#bisect-merges">Why bisecting merge commits can be harder than bisecting linear history</a></span></dt></dl></dd><dt><span class="chapter"><a href="#advanced-branch-management">6. Advanced branch management</a></span></dt><dd><dl><dt><span class="section"><a href="#fetching-individual-branches">Fetching individual branches</a></span></dt><dt><span class="section"><a href="#fetch-fast-forwards">git fetch and fast-forwards</a></span></dt><dt><span class="section"><a href="#forcing-fetch">Forcing git fetch to do non-fast-forward updates</a></span></dt><dt><span class="section"><a href="#remote-branch-configuration">Configuring remote-tracking branches</a></span></dt></dl></dd><dt><span class="chapter"><a href="#git-concepts">7. Git concepts</a></span></dt><dd><dl><dt><span class="section"><a href="#the-object-database">The Object Database</a></span></dt><dd><dl><dt><span class="section"><a href="#commit-object">Commit Object</a></span></dt><dt><span class="section"><a href="#tree-object">Tree Object</a></span></dt><dt><span class="section"><a href="#blob-object">Blob Object</a></span></dt><dt><span class="section"><a href="#trust">Trust</a></span></dt><dt><span class="section"><a href="#tag-object">Tag Object</a></span></dt><dt><span class="section"><a href="#pack-files">How Git stores objects efficiently: pack files</a></span></dt><dt><span class="section"><a href="#dangling-objects">Dangling objects</a></span></dt><dt><span class="section"><a href="#recovering-from-repository-corruption">Recovering from repository corruption</a></span></dt></dl></dd><dt><span class="section"><a href="#the-index">The index</a></span></dt></dl></dd><dt><span class="chapter"><a href="#submodules">8. Submodules</a></span></dt><dd><dl><dt><span class="section"><a href="#pitfalls-with-submodules">Pitfalls with submodules</a></span></dt></dl></dd><dt><span class="chapter"><a href="#low-level-operations">9. Low-level Git operations</a></span></dt><dd><dl><dt><span class="section"><a href="#object-manipulation">Object access and manipulation</a></span></dt><dt><span class="section"><a href="#the-workflow">The Workflow</a></span></dt><dd><dl><dt><span class="section"><a href="#working-directory-to-index">working directory → index</a></span></dt><dt><span class="section"><a href="#index-to-object-database">index → object database</a></span></dt><dt><span class="section"><a href="#object-database-to-index">object database → index</a></span></dt><dt><span class="section"><a href="#index-to-working-directory">index → working directory</a></span></dt><dt><span class="section"><a href="#tying-it-all-together">Tying it all together</a></span></dt></dl></dd><dt><span class="section"><a href="#examining-the-data">Examining the data</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees">Merging multiple trees</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees-2">Merging multiple trees, continued</a></span></dt></dl></dd><dt><span class="chapter"><a href="#hacking-git">10. Hacking Git</a></span></dt><dd><dl><dt><span class="section"><a href="#object-details">Object storage format</a></span></dt><dt><span class="section"><a href="#birdview-on-the-source-code">A birds-eye view of Git’s source code</a></span></dt></dl></dd><dt><span class="chapter"><a href="#glossary">11. Git Glossary</a></span></dt><dd><dl><dt><span class="section"><a href="#git-explained">Git explained</a></span></dt></dl></dd><dt><span class="appendix"><a href="#git-quick-start">A. Git Quick Reference</a></span></dt><dd><dl><dt><span class="section"><a href="#quick-creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#managing-branches">Managing branches</a></span></dt><dt><span class="section"><a href="#exploring-history">Exploring history</a></span></dt><dt><span class="section"><a href="#making-changes">Making changes</a></span></dt><dt><span class="section"><a href="#merging">Merging</a></span></dt><dt><span class="section"><a href="#sharing-your-changes">Sharing your changes</a></span></dt><dt><span class="section"><a href="#repository-maintenance">Repository maintenance</a></span></dt></dl></dd><dt><span class="appendix"><a href="#todo">B. Notes and todo list for this manual</a></span></dt><dd><dl><dt><span class="section"><a href="#todo-list">Todo list</a></span></dt></dl></dd></dl></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a name="_introduction"></a>Introduction</h1></div></div></div><p>Git is a fast distributed revision control system.</p><p>This manual is designed to be readable by someone with basic UNIX
command-line skills, but no previous knowledge of Git.</p><p><a class="xref" href="#repositories-and-branches" title="Chapter 1. Repositories and Branches">Chapter 1, <i>Repositories and Branches</i></a> and <a class="xref" href="#exploring-git-history" title="Chapter 2. Exploring Git history">Chapter 2, <i>Exploring Git history</i></a> explain how
to fetch and study a project using git—read these chapters to learn how
to build and test a particular version of a software project, search for
@@ -1858,7 +1858,18 @@ that not only specifies their type, but also provides size information
about the data in the object. It’s worth noting that the SHA-1 hash
that is used to name the object is the hash of the original data
plus this header, so <code class="literal">sha1sum</code> <span class="emphasis"><em>file</em></span> does not match the object name
-for <span class="emphasis"><em>file</em></span>.</p><p>As a result, the general consistency of an object can always be tested
+for <span class="emphasis"><em>file</em></span> (the earliest versions of Git hashed slightly differently
+but the conclusion is still the same).</p><p>The following is a short example that demonstrates how these hashes
+can be generated manually:</p><p>Let’s assume a small text file with some simple content:</p><pre class="screen">$ echo "Hello world" &gt;hello.txt</pre><p>We can now manually generate the hash Git would use for this file:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+The object we want the hash for is of type "blob" and its size is
+ 12 bytes.
+</li><li class="listitem">
+Prepend the object header to the file content and feed this to
+ <code class="literal">sha1sum</code>:
+</li></ul></div><pre class="screen">$ { printf "blob 12\0"; cat hello.txt; } | sha1sum
+802992c4220de19a90767f3000a79a31b98d0df7 -</pre><p>This manually constructed hash can be verified using <code class="literal">git hash-object</code>
+which of course hides the addition of the header:</p><pre class="screen">$ git hash-object hello.txt
+802992c4220de19a90767f3000a79a31b98d0df7</pre><p>As a result, the general consistency of an object can always be tested
independently of the contents or the type of the object: all objects can
be validated by verifying that (a) their hashes match the content of the
file and (b) the object successfully inflates to a stream of bytes that
@@ -1871,7 +1882,8 @@ of all objects, and verifies their internal consistency (in addition
to just verifying their superficial consistency through the hash).</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="birdview-on-the-source-code"></a>A birds-eye view of Git’s source code</h2></div></div></div><p>It is not always easy for new developers to find their way through Git’s
source code. This section gives you a little guidance to show where to
start.</p><p>A good place to start is with the contents of the initial commit, with:</p><pre class="screen">$ git switch --detach e83c5163</pre><p>The initial revision lays the foundation for almost everything Git has
-today, but is small enough to read in one sitting.</p><p>Note that terminology has changed since that revision. For example, the
+today (even though details may differ in a few places), but is small
+enough to read in one sitting.</p><p>Note that terminology has changed since that revision. For example, the
README in that revision uses the word "changeset" to describe what we
now call a <a class="link" href="#def_commit_object">commit</a>.</p><p>Also, we do not call it "cache" any more, but rather "index"; however,
the file is still called <code class="literal">read-cache.h</code>.</p><p>If you grasp the ideas in that initial commit, you should check out a
diff --git a/user-manual.txt b/user-manual.txt
index 643390349..90a418935 100644
--- a/user-manual.txt
+++ b/user-manual.txt
@@ -4093,7 +4093,38 @@ that not only specifies their type, but also provides size information
about the data in the object. It's worth noting that the SHA-1 hash
that is used to name the object is the hash of the original data
plus this header, so `sha1sum` 'file' does not match the object name
-for 'file'.
+for 'file' (the earliest versions of Git hashed slightly differently
+but the conclusion is still the same).
+
+The following is a short example that demonstrates how these hashes
+can be generated manually:
+
+Let's assume a small text file with some simple content:
+
+-------------------------------------------------
+$ echo "Hello world" >hello.txt
+-------------------------------------------------
+
+We can now manually generate the hash Git would use for this file:
+
+- The object we want the hash for is of type "blob" and its size is
+ 12 bytes.
+
+- Prepend the object header to the file content and feed this to
+ `sha1sum`:
+
+-------------------------------------------------
+$ { printf "blob 12\0"; cat hello.txt; } | sha1sum
+802992c4220de19a90767f3000a79a31b98d0df7 -
+-------------------------------------------------
+
+This manually constructed hash can be verified using `git hash-object`
+which of course hides the addition of the header:
+
+-------------------------------------------------
+$ git hash-object hello.txt
+802992c4220de19a90767f3000a79a31b98d0df7
+-------------------------------------------------
As a result, the general consistency of an object can always be tested
independently of the contents or the type of the object: all objects can
@@ -4123,7 +4154,8 @@ $ git switch --detach e83c5163
----------------------------------------------------
The initial revision lays the foundation for almost everything Git has
-today, but is small enough to read in one sitting.
+today (even though details may differ in a few places), but is small
+enough to read in one sitting.
Note that terminology has changed since that revision. For example, the
README in that revision uses the word "changeset" to describe what we