summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2024-03-07 16:03:23 -0800
committerJunio C Hamano <gitster@pobox.com>2024-03-07 16:03:23 -0800
commitd2c69b605afd8b35f402e2ac9d01d9ee195116e0 (patch)
tree6485f24a40d829c3f7db5abbc3534def77b48f22
parente13743909da808044f9ce2250fa7d449c991ecb2 (diff)
downloadgit-htmldocs-d2c69b605afd8b35f402e2ac9d01d9ee195116e0.tar.gz
Autogenerated HTML docs for v2.44.0-165-ge09f12
-rw-r--r--MyFirstContribution.html2
-rw-r--r--MyFirstObjectWalk.html2
-rw-r--r--RelNotes/2.45.0.txt34
-rw-r--r--ReviewingGuidelines.html2
-rw-r--r--SubmittingPatches.html2
-rw-r--r--ToolsForGit.html2
-rw-r--r--everyday.html2
-rw-r--r--git-config.html9
-rw-r--r--git-log.html7
-rw-r--r--git-merge-tree.html6
-rw-r--r--git-merge-tree.txt5
-rw-r--r--git-remote-helpers.html2
-rw-r--r--git-replay.html7
-rw-r--r--git-rev-list.html10
-rw-r--r--git-shortlog.html7
-rw-r--r--git.html39
-rw-r--r--git.txt22
-rw-r--r--gitprotocol-v2.html8
-rw-r--r--gitprotocol-v2.txt6
-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--rev-list-options.txt11
-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--user-manual.html2
57 files changed, 207 insertions, 82 deletions
diff --git a/MyFirstContribution.html b/MyFirstContribution.html
index 26db34b52..4fb5a5a19 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/MyFirstObjectWalk.html b/MyFirstObjectWalk.html
index eceb74a35..d4d9e8e1c 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/RelNotes/2.45.0.txt b/RelNotes/2.45.0.txt
index fe8832b8d..c0f9b9e44 100644
--- a/RelNotes/2.45.0.txt
+++ b/RelNotes/2.45.0.txt
@@ -24,6 +24,16 @@ UI, Workflows & Features
* "git for-each-ref" learned "--include-root-refs" option to show
even the stuff outside the 'refs/' hierarchy.
+ * "git rev-list --missing=print" has learned to optionally take
+ "--allow-missing-tips", which allows the objects at the starting
+ points to be missing.
+
+ * "git merge-tree" has learned that the three trees involved in the
+ 3-way merge only need to be trees, not necessarily commits.
+
+ * "git log --merge" learned to pay attention to CHERRY_PICK_HEAD and
+ other kinds of *_HEAD pseudorefs.
+
Performance, Internal Implementation, Development Support etc.
@@ -40,6 +50,10 @@ Performance, Internal Implementation, Development Support etc.
specified; use "_<placeholder>_" to typeset the word inside a pair
of <angle-brakets> emphasized.
+ * "git --no-lazy-fetch cmd" allows to run "cmd" while disabling lazy
+ fetching of objects from the promisor remote, which may be handy
+ for debugging.
+
Fixes since v2.44
-----------------
@@ -94,6 +108,25 @@ Fixes since v2.44
to be the first header file.
(merge 4e89f0e07c jc/doc-compat-util later to maint).
+ * "git commit -v --cleanup=scissors" used to add the scissors line
+ twice in the log message buffer, which has been corrected.
+ (merge e90cc075cc jt/commit-redundant-scissors-fix later to maint).
+
+ * A custom remote helper no longer cannot access the newly created
+ repository during "git clone", which is a regression in Git 2.44.
+ This has been corrected.
+ (merge 199f44cb2e ps/remote-helper-repo-initialization-fix later to maint).
+
+ * Various parts of upload-pack has been updated to bound the resource
+ consumption relative to the size of the repository to protect from
+ abusive clients.
+ (merge 6cd05e768b jk/upload-pack-bounded-resources later to maint).
+
+ * The upload-pack program, when talking over v2, accepted the
+ packfile-uris protocol extension from the client, even if it did
+ not advertise the capability, which has been corrected.
+ (merge a922bfa3b5 jk/upload-pack-v2-capability-cleanup later to maint).
+
* 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).
@@ -108,3 +141,4 @@ Fixes since v2.44
(merge f39addd0d9 rs/name-rev-with-mempool later to maint).
(merge 9a97b43e03 rs/submodule-prefix-simplify later to maint).
(merge 40b8076462 ak/rebase-autosquash later to maint).
+ (merge 3223204456 eg/add-uflags later to maint).
diff --git a/ReviewingGuidelines.html b/ReviewingGuidelines.html
index 6a7bf1ed9..4aa5d90ea 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/SubmittingPatches.html b/SubmittingPatches.html
index e1f659bcf..3a50e9980 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/ToolsForGit.html b/ToolsForGit.html
index 2560cc14f..453d24359 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/everyday.html b/everyday.html
index 0a12a0ba0..b6b536598 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/git-config.html b/git-config.html
index c7133bf50..7b99b74d6 100644
--- a/git-config.html
+++ b/git-config.html
@@ -11548,6 +11548,15 @@ transfer.bundleURI
</p>
</dd>
<dt class="hdlist1">
+transfer.advertiseObjectInfo
+</dt>
+<dd>
+<p>
+ When <code>true</code>, the <code>object-info</code> capability is advertised by
+ servers. Defaults to false.
+</p>
+</dd>
+<dt class="hdlist1">
uploadarchive.allowUnreachable
</dt>
<dd>
diff --git a/git-log.html b/git-log.html
index c2b14a450..bdc259e02 100644
--- a/git-log.html
+++ b/git-log.html
@@ -1534,8 +1534,11 @@ See also <a href="git-reflog.html">git-reflog(1)</a>.</p></div>
</dt>
<dd>
<p>
- After a failed merge, show refs that touch files having a
- conflict and don&#8217;t exist on all heads to merge.
+ Show commits touching conflicted paths in the range <code>HEAD...&lt;other&gt;</code>,
+ where <code>&lt;other&gt;</code> is the first existing pseudoref in <code>MERGE_HEAD</code>,
+ <code>CHERRY_PICK_HEAD</code>, <code>REVERT_HEAD</code> or <code>REBASE_HEAD</code>. Only works
+ when the index has unmerged entries. This option can be used to show
+ relevant commits when resolving conflicts from a 3-way merge.
</p>
</dd>
<dt class="hdlist1">
diff --git a/git-merge-tree.html b/git-merge-tree.html
index a429f6aea..4a9700b2d 100644
--- a/git-merge-tree.html
+++ b/git-merge-tree.html
@@ -847,7 +847,7 @@ etc.
</p>
</dd>
<dt class="hdlist1">
---merge-base=&lt;commit&gt;
+--merge-base=&lt;tree-ish&gt;
</dt>
<dd>
<p>
@@ -855,6 +855,8 @@ etc.
specify a merge-base for the merge, and specifying multiple bases is
currently not supported. This option is incompatible with <code>--stdin</code>.
</p>
+<div class="paragraph"><p>As the merge-base is provided directly, &lt;branch1&gt; and &lt;branch2&gt; do not need
+to specify commits; trees are enough.</p></div>
</dd>
</dl></div>
</div>
@@ -1152,7 +1154,7 @@ large repositories).</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-23 14:43:46 PDT
+ 2024-03-07 16:01:15 PST
</div>
</div>
</body>
diff --git a/git-merge-tree.txt b/git-merge-tree.txt
index b50acace3..dd388fa21 100644
--- a/git-merge-tree.txt
+++ b/git-merge-tree.txt
@@ -64,10 +64,13 @@ OPTIONS
share no common history. This flag can be given to override that
check and make the merge proceed anyway.
---merge-base=<commit>::
+--merge-base=<tree-ish>::
Instead of finding the merge-bases for <branch1> and <branch2>,
specify a merge-base for the merge, and specifying multiple bases is
currently not supported. This option is incompatible with `--stdin`.
++
+As the merge-base is provided directly, <branch1> and <branch2> do not need
+to specify commits; trees are enough.
[[OUTPUT]]
OUTPUT
diff --git a/git-remote-helpers.html b/git-remote-helpers.html
index 2054cdcd0..556df3e0a 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/git-replay.html b/git-replay.html
index f1cdc57ab..2acbdce0c 100644
--- a/git-replay.html
+++ b/git-replay.html
@@ -1348,8 +1348,11 @@ See also <a href="git-reflog.html">git-reflog(1)</a>.</p></div>
</dt>
<dd>
<p>
- After a failed merge, show refs that touch files having a
- conflict and don&#8217;t exist on all heads to merge.
+ Show commits touching conflicted paths in the range <code>HEAD...&lt;other&gt;</code>,
+ where <code>&lt;other&gt;</code> is the first existing pseudoref in <code>MERGE_HEAD</code>,
+ <code>CHERRY_PICK_HEAD</code>, <code>REVERT_HEAD</code> or <code>REBASE_HEAD</code>. Only works
+ when the index has unmerged entries. This option can be used to show
+ relevant commits when resolving conflicts from a 3-way merge.
</p>
</dd>
<dt class="hdlist1">
diff --git a/git-rev-list.html b/git-rev-list.html
index d17afc3b3..d8c4450cd 100644
--- a/git-rev-list.html
+++ b/git-rev-list.html
@@ -1370,8 +1370,11 @@ See also <a href="git-reflog.html">git-reflog(1)</a>.</p></div>
</dt>
<dd>
<p>
- After a failed merge, show refs that touch files having a
- conflict and don&#8217;t exist on all heads to merge.
+ Show commits touching conflicted paths in the range <code>HEAD...&lt;other&gt;</code>,
+ where <code>&lt;other&gt;</code> is the first existing pseudoref in <code>MERGE_HEAD</code>,
+ <code>CHERRY_PICK_HEAD</code>, <code>REVERT_HEAD</code> or <code>REBASE_HEAD</code>. Only works
+ when the index has unmerged entries. This option can be used to show
+ relevant commits when resolving conflicts from a 3-way merge.
</p>
</dd>
<dt class="hdlist1">
@@ -2238,6 +2241,9 @@ allow object traversal to continue for EXPECTED promisor missing objects.
Unexpected missing objects will raise an error.</p></div>
<div class="paragraph"><p>The form <em>--missing=print</em> is like <em>allow-any</em>, but will also print a
list of the missing objects. Object IDs are prefixed with a &#8220;?&#8221; character.</p></div>
+<div class="paragraph"><p>If some tips passed to the traversal are missing, they will be
+considered as missing too, and the traversal will ignore them. In case
+we cannot get their Object ID though, an error will be raised.</p></div>
</dd>
<dt class="hdlist1">
--exclude-promisor-objects
diff --git a/git-shortlog.html b/git-shortlog.html
index d3d2b1421..8ddba1066 100644
--- a/git-shortlog.html
+++ b/git-shortlog.html
@@ -1473,8 +1473,11 @@ See also <a href="git-reflog.html">git-reflog(1)</a>.</p></div>
</dt>
<dd>
<p>
- After a failed merge, show refs that touch files having a
- conflict and don&#8217;t exist on all heads to merge.
+ Show commits touching conflicted paths in the range <code>HEAD...&lt;other&gt;</code>,
+ where <code>&lt;other&gt;</code> is the first existing pseudoref in <code>MERGE_HEAD</code>,
+ <code>CHERRY_PICK_HEAD</code>, <code>REVERT_HEAD</code> or <code>REBASE_HEAD</code>. Only works
+ when the index has unmerged entries. This option can be used to show
+ relevant commits when resolving conflicts from a 3-way merge.
</p>
</dd>
<dt class="hdlist1">
diff --git a/git.html b/git.html
index 5028c04ee..4c03615d9 100644
--- a/git.html
+++ b/git.html
@@ -998,8 +998,22 @@ environment variable)</p></div>
</dt>
<dd>
<p>
- Do not use replacement refs to replace Git objects. See
- <a href="git-replace.html">git-replace(1)</a> for more information.
+ Do not use replacement refs to replace Git objects.
+ This is equivalent to exporting the <code>GIT_NO_REPLACE_OBJECTS</code>
+ environment variable with any value.
+ See <a href="git-replace.html">git-replace(1)</a> for more information.
+</p>
+</dd>
+<dt class="hdlist1">
+--no-lazy-fetch
+</dt>
+<dd>
+<p>
+ Do not fetch missing objects from the promisor remote on
+ demand. Useful together with <code>git cat-file -e &lt;object&gt;</code> to
+ see if the object is locally available.
+ This is equivalent to setting the <code>GIT_NO_LAZY_FETCH</code>
+ environment variable to <code>1</code>.
</p>
</dd>
<dt class="hdlist1">
@@ -3545,6 +3559,15 @@ for full details.</p></div>
</p>
</dd>
<dt class="hdlist1">
+<code>GIT_NO_REPLACE_OBJECTS</code>
+</dt>
+<dd>
+<p>
+ Setting and exporting this environment variable tells Git to
+ ignore replacement refs and do not replace Git objects.
+</p>
+</dd>
+<dt class="hdlist1">
<code>GIT_LITERAL_PATHSPECS</code>
</dt>
<dd>
@@ -3586,6 +3609,16 @@ for full details.</p></div>
</p>
</dd>
<dt class="hdlist1">
+<code>GIT_NO_LAZY_FETCH</code>
+</dt>
+<dd>
+<p>
+ Setting this Boolean environment variable to true tells Git
+ not to lazily fetch missing objects from the promisor remote
+ on demand.
+</p>
+</dd>
+<dt class="hdlist1">
<code>GIT_REFLOG_ACTION</code>
</dt>
<dd>
@@ -3846,7 +3879,7 @@ the Git Security mailing list &lt;<a href="mailto:git-security@googlegroups.com"
<div id="footer">
<div id="footer-text">
Last updated
- 2024-02-08 15:45:59 PST
+ 2024-03-07 16:01:15 PST
</div>
</div>
</body>
diff --git a/git.txt b/git.txt
index 0d25224c9..e6b766d5c 100644
--- a/git.txt
+++ b/git.txt
@@ -174,8 +174,17 @@ If you just want to run git as if it was started in `<path>` then use
directory.
--no-replace-objects::
- Do not use replacement refs to replace Git objects. See
- linkgit:git-replace[1] for more information.
+ Do not use replacement refs to replace Git objects.
+ This is equivalent to exporting the `GIT_NO_REPLACE_OBJECTS`
+ environment variable with any value.
+ See linkgit:git-replace[1] for more information.
+
+--no-lazy-fetch::
+ Do not fetch missing objects from the promisor remote on
+ demand. Useful together with `git cat-file -e <object>` to
+ see if the object is locally available.
+ This is equivalent to setting the `GIT_NO_LAZY_FETCH`
+ environment variable to `1`.
--literal-pathspecs::
Treat pathspecs literally (i.e. no globbing, no pathspec magic).
@@ -872,6 +881,10 @@ for full details.
header and packfile URIs. Set this Boolean environment variable to false to prevent this
redaction.
+`GIT_NO_REPLACE_OBJECTS`::
+ Setting and exporting this environment variable tells Git to
+ ignore replacement refs and do not replace Git objects.
+
`GIT_LITERAL_PATHSPECS`::
Setting this Boolean environment variable to true will cause Git to treat all
pathspecs literally, rather than as glob patterns. For example,
@@ -893,6 +906,11 @@ for full details.
Setting this Boolean environment variable to true will cause Git to treat all
pathspecs as case-insensitive.
+`GIT_NO_LAZY_FETCH`::
+ Setting this Boolean environment variable to true tells Git
+ not to lazily fetch missing objects from the promisor remote
+ on demand.
+
`GIT_REFLOG_ACTION`::
When a ref is updated, reflog entries are created to keep
track of the reason why the ref was updated (which is
diff --git a/gitprotocol-v2.html b/gitprotocol-v2.html
index 2513d3a50..f89975147 100644
--- a/gitprotocol-v2.html
+++ b/gitprotocol-v2.html
@@ -1157,7 +1157,8 @@ the <em>wanted-refs</em> section in the server&#8217;s response as explained bel
<pre><code>want-ref &lt;ref&gt;
Indicates to the server that the client wants to retrieve a
particular ref, where &lt;ref&gt; is the full name of a ref on the
- server.</code></pre>
+ server. It is a protocol error to send want-ref for the
+ same ref more than once.</code></pre>
</div></div>
<div class="paragraph"><p>If the <em>sideband-all</em> feature is advertised, the following argument can be
included in the client&#8217;s request:</p></div>
@@ -1173,7 +1174,8 @@ included in the client&#8217;s request:</p></div>
<div class="paragraph"><p>If the <em>packfile-uris</em> feature is advertised, the following argument
can be included in the client&#8217;s request as well as the potential
addition of the <em>packfile-uris</em> section in the server&#8217;s response as
-explained below.</p></div>
+explained below. Note that at most one <code>packfile-uris</code> line can be sent
+to the server.</p></div>
<div class="literalblock">
<div class="content">
<pre><code>packfile-uris &lt;comma-separated-list-of-protocols&gt;
@@ -1719,7 +1721,7 @@ headers of that bundle or bundles.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2024-02-08 15:45:59 PST
+ 2024-03-07 16:01:15 PST
</div>
</div>
</body>
diff --git a/gitprotocol-v2.txt b/gitprotocol-v2.txt
index 0b800abd5..414bc625d 100644
--- a/gitprotocol-v2.txt
+++ b/gitprotocol-v2.txt
@@ -346,7 +346,8 @@ the 'wanted-refs' section in the server's response as explained below.
want-ref <ref>
Indicates to the server that the client wants to retrieve a
particular ref, where <ref> is the full name of a ref on the
- server.
+ server. It is a protocol error to send want-ref for the
+ same ref more than once.
If the 'sideband-all' feature is advertised, the following argument can be
included in the client's request:
@@ -361,7 +362,8 @@ included in the client's request:
If the 'packfile-uris' feature is advertised, the following argument
can be included in the client's request as well as the potential
addition of the 'packfile-uris' section in the server's response as
-explained below.
+explained below. Note that at most one `packfile-uris` line can be sent
+to the server.
packfile-uris <comma-separated-list-of-protocols>
Indicates to the server that the client is willing to receive
diff --git a/howto/coordinate-embargoed-releases.html b/howto/coordinate-embargoed-releases.html
index f22127895..e1ec52da3 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-05 10:14:32 PST
+ 2024-03-07 16:01:38 PST
</div>
</div>
</body>
diff --git a/howto/keep-canonical-history-correct.html b/howto/keep-canonical-history-correct.html
index 89f462358..6153a193b 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-05</span>
+<span id="revdate">2024-03-07</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-05 10:14:32 PST
+ 2024-03-07 16:01:38 PST
</div>
</div>
</body>
diff --git a/howto/maintain-git.html b/howto/maintain-git.html
index b5599b732..057981166 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-05</span>
+<span id="revdate">2024-03-07</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-05 10:14:32 PST
+ 2024-03-07 16:01:38 PST
</div>
</div>
</body>
diff --git a/howto/new-command.html b/howto/new-command.html
index f896f2e57..14cfe6723 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-05</span>
+<span id="revdate">2024-03-07</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-05 10:14:31 PST
+ 2024-03-07 16:01:37 PST
</div>
</div>
</body>
diff --git a/howto/rebase-from-internal-branch.html b/howto/rebase-from-internal-branch.html
index a92aa64cd..ce7658a9e 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-05</span>
+<span id="revdate">2024-03-07</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-05 10:14:32 PST
+ 2024-03-07 16:01:38 PST
</div>
</div>
</body>
diff --git a/howto/rebuild-from-update-hook.html b/howto/rebuild-from-update-hook.html
index a673ee5fd..26985f59b 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-05</span>
+<span id="revdate">2024-03-07</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-05 10:14:32 PST
+ 2024-03-07 16:01:38 PST
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-blob-object.html b/howto/recover-corrupted-blob-object.html
index af5ad2b97..ab93292de 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-05</span>
+<span id="revdate">2024-03-07</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-05 10:14:32 PST
+ 2024-03-07 16:01:38 PST
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-object-harder.html b/howto/recover-corrupted-object-harder.html
index 33e6ddd5f..a2a2cf786 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-05</span>
+<span id="revdate">2024-03-07</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-05 10:14:32 PST
+ 2024-03-07 16:01:38 PST
</div>
</div>
</body>
diff --git a/howto/revert-a-faulty-merge.html b/howto/revert-a-faulty-merge.html
index 330f88ce8..6b8cc2bfb 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-05</span>
+<span id="revdate">2024-03-07</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-05 10:14:32 PST
+ 2024-03-07 16:01:38 PST
</div>
</div>
</body>
diff --git a/howto/revert-branch-rebase.html b/howto/revert-branch-rebase.html
index 0420a0af3..c3dd3a491 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-05</span>
+<span id="revdate">2024-03-07</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-05 10:14:31 PST
+ 2024-03-07 16:01:37 PST
</div>
</div>
</body>
diff --git a/howto/separating-topic-branches.html b/howto/separating-topic-branches.html
index b5e01d482..5300c63c7 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-05</span>
+<span id="revdate">2024-03-07</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-05 10:14:32 PST
+ 2024-03-07 16:01:38 PST
</div>
</div>
</body>
diff --git a/howto/setup-git-server-over-http.html b/howto/setup-git-server-over-http.html
index 12dbb1c94..cf51b55fa 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-05</span>
+<span id="revdate">2024-03-07</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-05 10:14:32 PST
+ 2024-03-07 16:01:38 PST
</div>
</div>
</body>
diff --git a/howto/update-hook-example.html b/howto/update-hook-example.html
index 233fb45a9..8fef612de 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-05</span>
+<span id="revdate">2024-03-07</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-05 10:14:31 PST
+ 2024-03-07 16:01:37 PST
</div>
</div>
</body>
diff --git a/howto/use-git-daemon.html b/howto/use-git-daemon.html
index 18e2c4a4c..1d34f456b 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-05</span>
+<span id="revdate">2024-03-07</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-05 10:14:31 PST
+ 2024-03-07 16:01:37 PST
</div>
</div>
</body>
diff --git a/howto/using-merge-subtree.html b/howto/using-merge-subtree.html
index 4414097e2..a3a6e039a 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-05</span>
+<span id="revdate">2024-03-07</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-05 10:14:31 PST
+ 2024-03-07 16:01:37 PST
</div>
</div>
</body>
diff --git a/howto/using-signed-tag-in-pull-request.html b/howto/using-signed-tag-in-pull-request.html
index b512be852..ed75319c6 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-05</span>
+<span id="revdate">2024-03-07</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-05 10:14:31 PST
+ 2024-03-07 16:01:37 PST
</div>
</div>
</body>
diff --git a/rev-list-options.txt b/rev-list-options.txt
index a583b52c6..408d9314d 100644
--- a/rev-list-options.txt
+++ b/rev-list-options.txt
@@ -341,8 +341,11 @@ See also linkgit:git-reflog[1].
Under `--pretty=reference`, this information will not be shown at all.
--merge::
- After a failed merge, show refs that touch files having a
- conflict and don't exist on all heads to merge.
+ Show commits touching conflicted paths in the range `HEAD...<other>`,
+ where `<other>` is the first existing pseudoref in `MERGE_HEAD`,
+ `CHERRY_PICK_HEAD`, `REVERT_HEAD` or `REBASE_HEAD`. Only works
+ when the index has unmerged entries. This option can be used to show
+ relevant commits when resolving conflicts from a 3-way merge.
--boundary::
Output excluded boundary commits. Boundary commits are
@@ -1019,6 +1022,10 @@ Unexpected missing objects will raise an error.
+
The form '--missing=print' is like 'allow-any', but will also print a
list of the missing objects. Object IDs are prefixed with a ``?'' character.
++
+If some tips passed to the traversal are missing, they will be
+considered as missing too, and the traversal will ignore them. In case
+we cannot get their Object ID though, an error will be raised.
--exclude-promisor-objects::
(For internal use only.) Prefilter object traversal at
diff --git a/technical/api-error-handling.html b/technical/api-error-handling.html
index 321ca93db..7657778c3 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/api-index.html b/technical/api-index.html
index 68fd6516b..6231df605 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/api-merge.html b/technical/api-merge.html
index 9428e6296..c221d5e06 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/api-parse-options.html b/technical/api-parse-options.html
index 8fa2dd417..f58e04898 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/api-simple-ipc.html b/technical/api-simple-ipc.html
index 6c1ea151f..57258d4de 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/api-trace2.html b/technical/api-trace2.html
index 2e7027295..e420edb8e 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/bitmap-format.html b/technical/bitmap-format.html
index c0a95a9bc..69e1ddd1a 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/technical/bundle-uri.html b/technical/bundle-uri.html
index 068975df2..ea565247f 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/hash-function-transition.html b/technical/hash-function-transition.html
index 1886689d9..6d60cbba2 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-05</span>
+<span id="revdate">2024-03-07</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 9f5e1c38e..f41dba74f 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/multi-pack-index.html b/technical/multi-pack-index.html
index 6f86dbb3c..a6c2d57c2 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/pack-heuristics.html b/technical/pack-heuristics.html
index dfdee963d..f54d4dbc8 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/parallel-checkout.html b/technical/parallel-checkout.html
index 6f01ca596..d4fcebd7c 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/partial-clone.html b/technical/partial-clone.html
index cd172ae7b..8149b89d8 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/racy-git.html b/technical/racy-git.html
index f41b4e49a..56e338119 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/technical/scalar.html b/technical/scalar.html
index 458e4a23b..ccc198a07 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/send-pack-pipeline.html b/technical/send-pack-pipeline.html
index 98c01eb7b..ca206fcde 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/technical/shallow.html b/technical/shallow.html
index 81299650c..35bb077ea 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/trivial-merge.html b/technical/trivial-merge.html
index 5a0c7d905..854559cb4 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/unit-tests.html b/technical/unit-tests.html
index 9ef41ed93..1feee92ad 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-05</span>
+<span id="revdate">2024-03-07</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/user-manual.html b/user-manual.html
index 79385dbaf..2a8d4ff15 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-05</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-07</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