diff options
author | Junio C Hamano <gitster@pobox.com> | 2023-11-07 12:14:48 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2023-11-07 12:14:48 +0900 |
commit | 7a133713b32080684945c44192842ee4781738b8 (patch) | |
tree | 778f7f5545752680354500eb4276df660e654e01 | |
parent | 0d3c3f33b133acb599ec269bfb9dcaab2a002cb6 (diff) | |
download | git-htmldocs-7a133713b32080684945c44192842ee4781738b8.tar.gz |
Autogenerated HTML docs for v2.43.0-rc0-23-g8be77
48 files changed, 95 insertions, 131 deletions
diff --git a/MyFirstContribution.html b/MyFirstContribution.html index c6328c6ba..a089db99b 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div class="sect1">
@@ -901,9 +901,10 @@ in order to keep the declarations alphabetically sorted:</p></div> <div class="content">
<pre><code>int cmd_psuh(int argc, const char **argv, const char *prefix);</code></pre>
</div></div>
-<div class="paragraph"><p>Be sure to <code>#include "builtin.h"</code> in your <code>psuh.c</code>.</p></div>
-<div class="paragraph"><p>Go ahead and add some throwaway printf to that function. This is a decent
-starting point as we can now add build rules and register the command.</p></div>
+<div class="paragraph"><p>Be sure to <code>#include "builtin.h"</code> in your <code>psuh.c</code>. You’ll also need to
+<code>#include "gettext.h"</code> to use functions related to printing output text.</p></div>
+<div class="paragraph"><p>Go ahead and add some throwaway printf to the <code>cmd_psuh</code> function. This is a
+decent starting point as we can now add build rules and register the command.</p></div>
<div class="admonitionblock">
<table><tr>
<td class="icon">
@@ -2096,7 +2097,7 @@ should generate your diffs from <code><topic>..<mybranch></code> and <div id="footer">
<div id="footer-text">
Last updated
- 2023-08-05 04:03:14 JST
+ 2023-11-07 12:13:08 JST
</div>
</div>
</body>
diff --git a/MyFirstContribution.txt b/MyFirstContribution.txt index 62d11a5cd..7cfed60c2 100644 --- a/MyFirstContribution.txt +++ b/MyFirstContribution.txt @@ -160,10 +160,11 @@ in order to keep the declarations alphabetically sorted: int cmd_psuh(int argc, const char **argv, const char *prefix); ---- -Be sure to `#include "builtin.h"` in your `psuh.c`. +Be sure to `#include "builtin.h"` in your `psuh.c`. You'll also need to +`#include "gettext.h"` to use functions related to printing output text. -Go ahead and add some throwaway printf to that function. This is a decent -starting point as we can now add build rules and register the command. +Go ahead and add some throwaway printf to the `cmd_psuh` function. This is a +decent starting point as we can now add build rules and register the command. NOTE: Your throwaway text, as well as much of the text you will be adding over the course of this tutorial, is user-facing. That means it needs to be diff --git a/MyFirstObjectWalk.html b/MyFirstObjectWalk.html index 91aea2593..83281244f 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/RelNotes/2.43.0.txt b/RelNotes/2.43.0.txt index ad3b82fe0..836fcb543 100644 --- a/RelNotes/2.43.0.txt +++ b/RelNotes/2.43.0.txt @@ -16,7 +16,7 @@ Backward Compatibility Notes rule is that "--not" given from the command line only affects revs given from the command line that comes but not revs read from the standard input, and "--not" read from the standard input affects - revs given from the stanrdard input and not revs given from the + revs given from the standard input and not revs given from the command line. UI, Workflows & Features @@ -37,8 +37,9 @@ UI, Workflows & Features oath token and password expiration data) are stored in libsecret keyrings has been rethought. - * Update two credential helpers to correctly match which credential - to erase; they dropped not the ones with stale password. + * Update the libsecret and wincred credential helpers to correctly + match which credential to erase; they erased the wrong entry in + some cases. * Git GUI updates. @@ -62,7 +63,7 @@ UI, Workflows & Features describe complex "revert of revert of revert" situation better in their own words. - * The command-line complation support (in contrib/) learned to + * The command-line completion support (in contrib/) learned to complete "git commit --trailer=" for possible trailer keys. * "git update-index" learns "--show-index-version" to inspect @@ -109,16 +110,13 @@ Performance, Internal Implementation, Development Support etc. the help text is optional. * Tests that are known to pass with LSan are now marked as such. - (merge 5fafe8c95f tb/mark-more-tests-as-leak-free later to maint). * Flaky "git p4" tests, as well as "git svn" tests, are now skipped in the (rather expensive) sanitizer CI job. - (merge 6ba913629f js/ci-san-skip-p4-and-svn-tests later to maint). * Tests with LSan from time to time seem to emit harmless message that makes our tests unnecessarily flaky; we work it around by filtering the uninteresting output. - (merge 370ef7e40d jk/test-lsan-denoise-output later to maint). * Unused parameters to functions are marked as such, and/or removed, in order to bring us closer to -Wunused-parameter clean. @@ -131,7 +129,6 @@ Performance, Internal Implementation, Development Support etc. functionality. * GitHub CI workflow has learned to trigger Coverity check. - (merge 3349520e1a js/ci-coverity later to maint). * Test coverage for trailers has been improved. @@ -148,40 +145,31 @@ Fixes since v2.42 * Overly long label names used in the sequencer machinery are now chopped to fit under filesystem limitation. - (merge ac300bda10 mp/rebase-label-length-limit later to maint). * Scalar updates. - (merge f9a547d3a7 ds/scalar-updates later to maint). * Tweak GitHub Actions CI so that pushing the same commit to multiple branch tips at the same time will not waste building and testing the same thing twice. - (merge 99fe06cbfd jc/ci-skip-same-commit later to maint). * The commit-graph verification code that detects mixture of zero and non-zero generation numbers has been updated. - (merge db6044d762 tb/commit-graph-verify-fix later to maint). * "git diff -w --exit-code" with various options did not work correctly, which is being addressed. - (merge a64f8b2595 jc/diff-exit-code-with-w-fixes later to maint). * transfer.unpackLimit ought to be used as a fallback, but overrode fetch.unpackLimit and receive.unpackLimit instead. - (merge f3d33f8cfe ts/unpacklimit-config-fix later to maint). * The use of API between two calls to require_clean_work_tree() from the sequencer code has been cleaned up for consistency. - (merge a9b5955e07 ob/sequencer-empty-hint-fix later to maint). * "git diff --no-such-option" and other corner cases around the exit status of the "diff" command has been corrected. - (merge 5cc6b2d70b jk/diff-result-code-cleanup later to maint). * "git for-each-ref --sort='contents:size'" sorts the refs according to size numerically, giving a ref that points at a blob twelve-byte (12) long before showing a blob hundred-byte (100) long. - (merge 6d79cd8474 ks/ref-filter-sort-numerically later to maint). * We now limit depth of the tree objects and maximum length of pathnames recorded in tree objects. @@ -189,51 +177,40 @@ Fixes since v2.42 * Various fixes to the behavior of "rebase -i" when the command got interrupted by conflicting changes. - (merge 203573b024 pw/rebase-i-after-failure later to maint). * References from description of the `--patch` option in various manual pages have been simplified and improved. - (merge 11422f23e3 so/diff-doc-for-patch-update later to maint). * "git grep -e A --no-or -e B" is accepted, even though the negation of "or" did not mean anything, which has been tightened. - (merge aae8558b10 rs/grep-no-no-or later to maint). * The completion script (in contrib/) has been taught to treat the "-t" option to "git checkout" and "git switch" just like the "--track" option, to complete remote-tracking branches. - (merge 9f892830d6 js/complete-checkout-t later to maint). * "git diff --no-index -R <(one) <(two)" did not work correctly, which has been corrected. - (merge 48944f214c pw/diff-no-index-from-named-pipes later to maint). * Update "git maintenance" timers' implementation based on systemd timers to work with WSL. - (merge 5e8515e8e8 js/systemd-timers-wsl-fix later to maint). * "git diff --cached" codepath did not fill the necessary stat information for a file when fsmonitor knows it is clean and ended up behaving as if it is not clean, which has been corrected. - (merge 6a044a2048 js/diff-cached-fsmonitor-fix later to maint). * Clarify how "alias.foo = : git cmd ; aliased-command-string" should be spelled with necessary whitespaces around punctuation marks to work. - (merge 4333267995 pb/completion-aliases-doc later to maint). * HTTP Header redaction code has been adjusted for a newer version of cURL library that shows its traces differently from earlier versions. - (merge 0763c3a2c4 jk/redact-h2h3-headers-fix later to maint). * An error message given by "git send-email" when given a malformed address did not give correct information, which has been corrected. - (merge 12288cc44e tb/send-email-extract-valid-address-error-message-fix later to maint). * UBSan options were not propagated through the test framework to git run via the httpd, unlike ASan options, which has been corrected. - (merge 252d693797 jk/test-pass-ubsan-options-to-http-test later to maint). * "checkout --merge -- path" and "update-index --unresolve path" did not resurrect conflicted state that was resolved to remove path, @@ -290,35 +267,20 @@ Fixes since v2.42 been corrected. (merge 3ec6167567 jk/send-email-fix-addresses-from-composed-messages later to maint). + * "cd sub && git grep -f patterns" tried to read "patterns" file at + the top level of the working tree; it has been corrected to read + "sub/patterns" instead. + + + * "git reflog expire --single-worktree" has been broken for the past + 20 months or so, which has been corrected. + + * "git send-email" did not have certain pieces of data computed yet + when it tried to validate the outging messages and its recipient + addresses, which has been sorted out. + + * "git bugreport" learned to complain when it received a command line + argument that it will not use. + * Other code cleanup, docfix, build fix, etc. - (merge fd3ba590d8 ws/git-push-doc-grammofix later to maint). - (merge 5f33a843de ds/upload-pack-error-sequence-fix later to maint). - (merge beaa1d952b jk/function-pointer-mismatches-fix later to maint). - (merge b46d806ea5 ob/t9001-indent-fix later to maint). - (merge fdc9914c28 ja/worktree-orphan later to maint). - (merge c2cbefc510 jc/mv-d-to-d-error-message-fix later to maint). - (merge d0fc552bfc ch/t6300-verify-commit-test-cleanup later to maint). - (merge aa4b83dd5e ws/git-svn-retire-faketerm later to maint). - (merge edf80d23f1 jk/ci-retire-allow-ref later to maint). - (merge 256a94ef6c bc/more-git-var later to maint). - (merge 82af2c639c ob/sequencer-reword-error-message later to maint). - (merge 2a63c79dae rs/grep-parseopt-simplify later to maint). - (merge 078c42531e rs/name-rev-use-opt-hidden-bool later to maint). - (merge 63642d58b4 ob/sequencer-remove-dead-code later to maint). - (merge 8aae489756 ob/t3404-typofix later to maint). - (merge 58be11432e eg/config-type-path-docfix later to maint). - (merge 563f339d98 ch/clean-docfix later to maint). - (merge 4fbe83fcd9 hy/doc-show-is-like-log-not-diff-tree later to maint). - (merge 43abaaf008 ob/am-msgfix later to maint). (merge c2c349a15c xz/commit-title-soft-limit-doc later to maint). - (merge f4cbb32c27 rs/parse-opt-ctx-cleanup later to maint). - (merge badf2fe1c3 jk/decoration-and-other-leak-fixes later to maint). - (merge cebfaaa333 sn/cat-file-doc-update later to maint). - (merge 8b3aa36f5a ps/rewritten-is-per-worktree-doc later to maint). - (merge ffbf6a748d jc/update-list-references-to-lore later to maint). - (merge 14d569b1a7 jc/am-doc-whitespace-action-fix later to maint). - (merge 48399e9cf0 ni/die-message-fix-for-git-add later to maint). - (merge ca3285dd69 ps/git-repack-doc-fixes later to maint). - (merge 243c79fdc7 wx/merge-ort-comment-typofix later to maint). - (merge a060705d94 jc/commit-new-underscore-index-fix later to maint). - (merge f6d83e2115 ms/doc-push-fix later to maint). diff --git a/ReviewingGuidelines.html b/ReviewingGuidelines.html index 494ec7b89..0565419fc 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/SubmittingPatches.html b/SubmittingPatches.html index 71ccf82f5..9bd4383c2 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div class="sect1">
@@ -1035,7 +1035,7 @@ date)", like this:</p></div> <pre><code> Commit f86a374 (pack-bitmap.c: fix a memleak, 2015-03-30)
noticed that ...</code></pre>
</div></div>
-<div class="paragraph"><p>The "Copy commit summary" command of gitk can be used to obtain this
+<div class="paragraph"><p>The "Copy commit reference" command of gitk can be used to obtain this
format (with the subject enclosed in a pair of double-quotes), or this
invocation of <code>git show</code>:</p></div>
<div class="literalblock">
@@ -1518,7 +1518,7 @@ this problem around.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2023-11-03 09:40:12 JST
+ 2023-11-07 12:13:08 JST
</div>
</div>
</body>
diff --git a/SubmittingPatches.txt b/SubmittingPatches.txt index 965e02e75..bce7f9781 100644 --- a/SubmittingPatches.txt +++ b/SubmittingPatches.txt @@ -266,7 +266,7 @@ date)", like this: noticed that ... .... -The "Copy commit summary" command of gitk can be used to obtain this +The "Copy commit reference" command of gitk can be used to obtain this format (with the subject enclosed in a pair of double-quotes), or this invocation of `git show`: diff --git a/ToolsForGit.html b/ToolsForGit.html index 35f85ad10..7e49aeb9b 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/everyday.html b/everyday.html index 3e79a49ad..4c70b31ad 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/git-rebase.html b/git-rebase.html index 93dbedc4d..a3a44f0e5 100644 --- a/git-rebase.html +++ b/git-rebase.html @@ -1077,7 +1077,7 @@ the merge base to determine the <em>set of commits</em> which will be rebased.</ <div class="paragraph"><p>See also INCOMPATIBLE OPTIONS below.</p></div>
</dd>
<dt class="hdlist1">
---empty={drop,keep,ask}
+--empty=(drop|keep|ask)
</dt>
<dd>
<p>
@@ -1741,7 +1741,7 @@ be dropped automatically with <code>--no-keep-empty</code>).</p></div> <div class="paragraph"><p>Similar to the apply backend, by default the merge backend drops
commits that become empty unless <code>-i</code>/<code>--interactive</code> is specified (in
which case it stops and asks the user what to do). The merge backend
-also has an <code>--empty={drop,keep,ask}</code> option for changing the behavior
+also has an <code>--empty=(drop|keep|ask)</code> option for changing the behavior
of handling commits that become empty.</p></div>
</div>
<div class="sect2">
@@ -2803,7 +2803,7 @@ sequence.editor <div id="footer">
<div id="footer-text">
Last updated
- 2023-04-05 08:17:01 JST
+ 2023-11-07 12:13:08 JST
</div>
</div>
</body>
diff --git a/git-rebase.txt b/git-rebase.txt index e7b39ad24..b4526ca24 100644 --- a/git-rebase.txt +++ b/git-rebase.txt @@ -289,7 +289,7 @@ See also INCOMPATIBLE OPTIONS below. + See also INCOMPATIBLE OPTIONS below. ---empty={drop,keep,ask}:: +--empty=(drop|keep|ask):: How to handle commits that are not empty to start and are not clean cherry-picks of any upstream commit, but which become empty after rebasing (because they contain a subset of already @@ -695,7 +695,7 @@ be dropped automatically with `--no-keep-empty`). Similar to the apply backend, by default the merge backend drops commits that become empty unless `-i`/`--interactive` is specified (in which case it stops and asks the user what to do). The merge backend -also has an `--empty={drop,keep,ask}` option for changing the behavior +also has an `--empty=(drop|keep|ask)` option for changing the behavior of handling commits that become empty. Directory rename detection diff --git a/git-remote-helpers.html b/git-remote-helpers.html index 6629be533..190009983 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/howto/coordinate-embargoed-releases.html b/howto/coordinate-embargoed-releases.html index 119d9e2fb..2f027bb2a 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
- 2023-11-03 09:40:11 JST
+ 2023-11-07 12:13:32 JST
</div>
</div>
</body>
diff --git a/howto/keep-canonical-history-correct.html b/howto/keep-canonical-history-correct.html index 22bd9c095..92e532765 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">2023-11-02</span>
+<span id="revdate">2023-11-03</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
- 2023-11-03 09:40:11 JST
+ 2023-11-07 12:13:32 JST
</div>
</div>
</body>
diff --git a/howto/maintain-git.html b/howto/maintain-git.html index b6002841c..16deb5aac 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">2023-11-02</span>
+<span id="revdate">2023-11-03</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
- 2023-11-03 09:40:11 JST
+ 2023-11-07 12:13:32 JST
</div>
</div>
</body>
diff --git a/howto/new-command.html b/howto/new-command.html index 5427d60dd..6f2cb22c3 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">2023-11-02</span>
+<span id="revdate">2023-11-03</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
- 2023-11-03 09:40:10 JST
+ 2023-11-07 12:13:30 JST
</div>
</div>
</body>
diff --git a/howto/rebase-from-internal-branch.html b/howto/rebase-from-internal-branch.html index 5580b76d8..bbcb9c60a 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">2023-11-02</span>
+<span id="revdate">2023-11-03</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
- 2023-11-03 09:40:11 JST
+ 2023-11-07 12:13:32 JST
</div>
</div>
</body>
diff --git a/howto/rebuild-from-update-hook.html b/howto/rebuild-from-update-hook.html index 227966c37..a3d8b594e 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">2023-11-02</span>
+<span id="revdate">2023-11-03</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
- 2023-11-03 09:40:11 JST
+ 2023-11-07 12:13:31 JST
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-blob-object.html b/howto/recover-corrupted-blob-object.html index 32d6c8b45..f2c4c154b 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div id="preamble">
@@ -881,7 +881,7 @@ thing.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2023-11-03 09:40:11 JST
+ 2023-11-07 12:13:31 JST
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-object-harder.html b/howto/recover-corrupted-object-harder.html index c58b4f27c..f434acc8c 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">2023-11-02</span>
+<span id="revdate">2023-11-03</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
- 2023-11-03 09:40:11 JST
+ 2023-11-07 12:13:31 JST
</div>
</div>
</body>
diff --git a/howto/revert-a-faulty-merge.html b/howto/revert-a-faulty-merge.html index 832c0fe74..c4644ace8 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">2023-11-02</span>
+<span id="revdate">2023-11-03</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
- 2023-11-03 09:40:11 JST
+ 2023-11-07 12:13:31 JST
</div>
</div>
</body>
diff --git a/howto/revert-branch-rebase.html b/howto/revert-branch-rebase.html index e2a6b50d4..9976e4374 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div id="preamble">
@@ -908,7 +908,7 @@ Committed merge 7fb9b7262a1d1e0a47bbfdcbbcf50ce0635d3f8f <div id="footer">
<div id="footer-text">
Last updated
- 2023-11-03 09:40:10 JST
+ 2023-11-07 12:13:30 JST
</div>
</div>
</body>
diff --git a/howto/separating-topic-branches.html b/howto/separating-topic-branches.html index 2e2bc5f59..9474db51a 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">2023-11-02</span>
+<span id="revdate">2023-11-03</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
- 2023-11-03 09:40:11 JST
+ 2023-11-07 12:13:31 JST
</div>
</div>
</body>
diff --git a/howto/setup-git-server-over-http.html b/howto/setup-git-server-over-http.html index 620050efc..c94d522ae 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">2023-11-02</span>
+<span id="revdate">2023-11-03</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
- 2023-11-03 09:40:10 JST
+ 2023-11-07 12:13:31 JST
</div>
</div>
</body>
diff --git a/howto/update-hook-example.html b/howto/update-hook-example.html index f193709a8..4aaad92c8 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">2023-11-02</span>
+<span id="revdate">2023-11-03</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
- 2023-11-03 09:40:10 JST
+ 2023-11-07 12:13:31 JST
</div>
</div>
</body>
diff --git a/howto/use-git-daemon.html b/howto/use-git-daemon.html index d966e1001..3ea14e91f 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">2023-11-02</span>
+<span id="revdate">2023-11-03</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
- 2023-11-03 09:40:10 JST
+ 2023-11-07 12:13:31 JST
</div>
</div>
</body>
diff --git a/howto/using-merge-subtree.html b/howto/using-merge-subtree.html index 8541ba314..3bc67a3e7 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">2023-11-02</span>
+<span id="revdate">2023-11-03</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
- 2023-11-03 09:40:10 JST
+ 2023-11-07 12:13:30 JST
</div>
</div>
</body>
diff --git a/howto/using-signed-tag-in-pull-request.html b/howto/using-signed-tag-in-pull-request.html index acd1240a9..18c89c262 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">2023-11-02</span>
+<span id="revdate">2023-11-03</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
- 2023-11-03 09:40:10 JST
+ 2023-11-07 12:13:31 JST
</div>
</div>
</body>
diff --git a/technical/api-error-handling.html b/technical/api-error-handling.html index 28e86d469..087b9c075 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/api-index.html b/technical/api-index.html index e20819957..b3532390b 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/api-merge.html b/technical/api-merge.html index 0a0f4f98b..dd5f2d7ab 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/api-parse-options.html b/technical/api-parse-options.html index ac20b4147..77e2432b9 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/api-simple-ipc.html b/technical/api-simple-ipc.html index e1e6d9dc4..4fbc49b28 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/api-trace2.html b/technical/api-trace2.html index acd627284..d9455e4bb 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/bitmap-format.html b/technical/bitmap-format.html index 3e88f3945..1670eba4d 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/technical/bundle-uri.html b/technical/bundle-uri.html index f33ef9062..aafb99468 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/hash-function-transition.html b/technical/hash-function-transition.html index 89b561a85..435defd27 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">2023-11-02</span>
+<span id="revdate">2023-11-03</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 ae085513f..1ca6b8167 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/multi-pack-index.html b/technical/multi-pack-index.html index cd51153cd..f5ebc3e6d 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/pack-heuristics.html b/technical/pack-heuristics.html index 30267fe36..0d3082cf3 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’s Packing Heuristics</h1>
-<span id="revdate">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/parallel-checkout.html b/technical/parallel-checkout.html index 32599a5d0..ad37c6041 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/partial-clone.html b/technical/partial-clone.html index 04efbd2d3..2a2b4d1ef 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/racy-git.html b/technical/racy-git.html index 1aa1e4645..d2922af97 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/technical/scalar.html b/technical/scalar.html index 1f3e78ee6..4cd3025bf 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/send-pack-pipeline.html b/technical/send-pack-pipeline.html index d1212e954..151ff9807 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div class="sect1">
diff --git a/technical/shallow.html b/technical/shallow.html index e4c05b102..6722afb51 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/technical/trivial-merge.html b/technical/trivial-merge.html index 15d11d9ae..83aaeed0f 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">2023-11-02</span>
+<span id="revdate">2023-11-03</span>
</div>
<div id="content">
<div id="preamble">
diff --git a/user-manual.html b/user-manual.html index 626baa556..e84d922ef 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">2023-11-02</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">2023-11-03</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 |