From cb119ab9d01a5ead330e94756b310ca384219570 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Tue, 21 Nov 2023 01:59:13 +0900 Subject: Autogenerated HTML docs for v2.43.0 --- MyFirstContribution.html | 2 +- MyFirstObjectWalk.html | 2 +- RelNotes/2.43.0.txt | 124 +++++++++++++++------------ ReviewingGuidelines.html | 2 +- SubmittingPatches.html | 4 +- ToolsForGit.html | 2 +- everyday.html | 2 +- git-bisect-lk2009.html | 2 +- git-remote-helpers.html | 2 +- git-tools.html | 2 +- gitglossary.html | 56 +++++++++--- glossary-content.txt | 49 ++++++++--- howto-index.html | 4 +- howto/coordinate-embargoed-releases.html | 2 +- howto/keep-canonical-history-correct.html | 4 +- howto/maintain-git.html | 4 +- howto/new-command.html | 4 +- howto/rebase-from-internal-branch.html | 4 +- howto/rebuild-from-update-hook.html | 4 +- howto/recover-corrupted-blob-object.html | 4 +- howto/recover-corrupted-object-harder.html | 4 +- howto/revert-a-faulty-merge.html | 4 +- howto/revert-branch-rebase.html | 4 +- howto/separating-topic-branches.html | 4 +- howto/setup-git-server-over-http.html | 4 +- howto/update-hook-example.html | 4 +- howto/use-git-daemon.html | 4 +- howto/using-merge-subtree.html | 4 +- howto/using-signed-tag-in-pull-request.html | 4 +- technical/api-error-handling.html | 2 +- technical/api-index.html | 4 +- technical/api-merge.html | 2 +- technical/api-parse-options.html | 2 +- technical/api-simple-ipc.html | 2 +- technical/api-trace2.html | 2 +- technical/bitmap-format.html | 2 +- technical/bundle-uri.html | 2 +- technical/hash-function-transition.html | 2 +- technical/long-running-process-protocol.html | 2 +- technical/multi-pack-index.html | 2 +- technical/pack-heuristics.html | 2 +- technical/parallel-checkout.html | 2 +- technical/partial-clone.html | 2 +- technical/racy-git.html | 2 +- technical/scalar.html | 2 +- technical/send-pack-pipeline.html | 2 +- technical/shallow.html | 2 +- technical/trivial-merge.html | 2 +- user-manual.html | 47 ++++++---- 49 files changed, 241 insertions(+), 161 deletions(-) diff --git a/MyFirstContribution.html b/MyFirstContribution.html index 63af45749..343944b05 100644 --- a/MyFirstContribution.html +++ b/MyFirstContribution.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/MyFirstObjectWalk.html b/MyFirstObjectWalk.html index 8a8b02ecb..ac258e167 100644 --- a/MyFirstObjectWalk.html +++ b/MyFirstObjectWalk.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/RelNotes/2.43.0.txt b/RelNotes/2.43.0.txt index 770543c46..e0e5b535b 100644 --- a/RelNotes/2.43.0.txt +++ b/RelNotes/2.43.0.txt @@ -10,8 +10,8 @@ Backward Compatibility Notes prefix. If you are negatively affected by this change, please use "--subject-prefix=PATCH --rfc" as a replacement. - * "git rev-list --stdin" learned to take non-revisions (like "--not") - recently from the standard input, but the way such a "--not" was + * In Git 2.42, "git rev-list --stdin" learned to take non-revisions + (like "--not") from the standard input, but the way such a "--not" was handled was quite confusing, which has been rethought. The updated 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 @@ -22,10 +22,11 @@ Backward Compatibility Notes UI, Workflows & Features * A message written in olden time prevented a branch from getting - checked out saying it is already checked out elsewhere, but these + checked out, saying it is already checked out elsewhere. But these days, we treat a branch that is being bisected or rebased just like - a branch that is checked out and protect it. Rephrase the message - to say that the branch is in use. + a branch that is checked out and protect it from getting modified + with the same codepath. The message has been rephrased to say that + the branch is "in use" to avoid confusion. * Hourly and other schedules of "git maintenance" jobs are randomly distributed now. @@ -43,20 +44,21 @@ UI, Workflows & Features * Git GUI updates. - * "git format-patch" learns a way to feed cover letter description, - that (1) can be used on detached HEAD where there is no branch - description available, and (2) also can override the branch - description if there is one. + * "git format-patch" learned a new "--description-file" option that + lets cover letter description to be fed; this can be used on + detached HEAD where there is no branch description available, and + also can override the branch description if there is one. - * Use of --max-pack-size to allow multiple packfiles to be created is - now supported even when we are sending unreachable objects to cruft - packs. + * Use of the "--max-pack-size" option to allow multiple packfiles to + be created is now supported even when we are sending unreachable + objects to cruft packs. * "git format-patch --rfc --subject-prefix=" used to ignore the "--subject-prefix" option and used "[RFC PATCH]"; now we will add "RFC" prefix to whatever subject prefix is specified. - * "git log --format" has been taught the %(decorate) placeholder. + * "git log --format" has been taught the %(decorate) placeholder for + further customization over what the "--decorate" option offers. * The default log message created by "git revert", when reverting a commit that records a revert, has been tweaked, to encourage people @@ -66,41 +68,45 @@ UI, Workflows & Features * 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 - the index format version used by the on-disk index file. + * "git update-index" learned the "--show-index-version" option to + inspect the index format version used by the on-disk index file. - * "git diff" learned diff.statNameWidth configuration variable, to - give the default width for the name part in the "--stat" output. + * "git diff" learned the "diff.statNameWidth" configuration variable, + to give the default width for the name part in the "--stat" output. * "git range-diff --notes=foo" compared "log --notes=foo --notes" of - the two ranges, instead of using just the specified notes tree. + the two ranges, instead of using just the specified notes tree, + which has been corrected to use only the specified notes tree. * The command line completion script (in contrib/) can be told to complete aliases by including ": git ;" in the alias to tell - it that the alias should be completed in a similar way to how "git " is - completed. The parsing code for the alias has been loosened to - allow ';' without an extra space before it. + it that the alias should be completed in a similar way to how "git + " is completed. The parsing code for the alias has been + loosened to allow ';' without an extra space before it. * "git for-each-ref" and friends learned to apply mailmap to - authorname and other fields. + authorname and other fields in a more flexible way than using + separate placeholder letters like %a[eElL] every time we want to + come up with small variants. - * "git repack" machinery learns to pay attention to the "--filter=" + * "git repack" machinery learned to pay attention to the "--filter=" option. - * "git repack" learned "--max-cruft-size" to prevent cruft packs from - growing without bounds. + * "git repack" learned the "--max-cruft-size" option to prevent cruft + packs from growing without bounds. * "git merge-tree" learned to take strategy backend specific options via the "-X" option, like "git merge" does. - * "git log" and friends learned "--dd" that is a short-hand for - "--diff-merges=first-parent -p". + * "git log" and friends learned the "--dd" option that is a + short-hand for "--diff-merges=first-parent -p". - * The attribute subsystem learned to honor `attr.tree` configuration - that specifies which tree to read the .gitattributes files from. + * The attribute subsystem learned to honor the "attr.tree" + configuration variable that specifies which tree to read the + .gitattributes files from. - * "git merge-file" learns a mode to read three contents to be merged - from blob objects. + * "git merge-file" learns a mode to read three variants of the + contents to be merged from blob objects. Performance, Internal Implementation, Development Support etc. @@ -110,7 +116,7 @@ Performance, Internal Implementation, Development Support etc. * It may be tempting to leave the help text NULL for a command line option that is either hidden or too obvious, but "git subcmd -h" and "git subcmd --help-all" would have segfaulted if done so. Now - the help text is optional. + the help text is truly optional. * Tests that are known to pass with LSan are now marked as such. @@ -122,7 +128,7 @@ Performance, Internal Implementation, Development Support etc. filtering the uninteresting output. * Unused parameters to functions are marked as such, and/or removed, - in order to bring us closer to -Wunused-parameter clean. + in order to bring us closer to "-Wunused-parameter" clean. * The code to keep track of existing packs in the repository while repacking has been refactored. @@ -161,10 +167,12 @@ Fixes since v2.42 non-zero generation numbers has been updated. * "git diff -w --exit-code" with various options did not work - correctly, which is being addressed. + correctly, which has been corrected. - * transfer.unpackLimit ought to be used as a fallback, but overrode - fetch.unpackLimit and receive.unpackLimit instead. + * The "transfer.unpackLimit" configuration variable ought to be used + as a fallback, but overrode the more specific "fetch.unpackLimit" + and "receive.unpackLimit" configuration variables by mistake, which + has been corrected. * The use of API between two calls to require_clean_work_tree() from the sequencer code has been cleaned up for consistency. @@ -172,22 +180,23 @@ Fixes since v2.42 * "git diff --no-such-option" and other corner cases around the exit status of the "diff" command have been corrected. - * "git for-each-ref --sort='contents:size'" sorts the refs according + * "git for-each-ref --sort='contents:size'" sorted 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. + (12) long before showing a blob hundred-byte (100) long, which has + been corrected. * We now limit the depth of the tree objects and maximum length of pathnames recorded in tree objects. (merge 4d5693ba05 jk/tree-name-and-depth-limit later to maint). - * Various fixes to the behavior of "rebase -i" when the command got - interrupted by conflicting changes. + * Various fixes to the behavior of "rebase -i", when the command got + interrupted by conflicting changes, have been made. * References from a description of the `--patch` option in various manual pages have been simplified and improved. * "git grep -e A --no-or -e B" is accepted, even though the negation - of "or" did not mean anything, which has been tightened. + of the "--or" option did not mean anything, which has been tightened. * The completion script (in contrib/) has been taught to treat the "-t" option to "git checkout" and "git switch" just like the @@ -196,23 +205,24 @@ Fixes since v2.42 * "git diff --no-index -R <(one) <(two)" did not work correctly, which has been corrected. - * Update "git maintenance" timers' implementation based on systemd - timers to work with WSL. + * "git maintenance" timers' implementation has been updated, based on + systemd timers, to work with WSL. * "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. + up behaving as if it were not clean, which has been corrected. - * Clarify how "alias.foo = : git cmd ; aliased-command-string" should be - spelled with necessary whitespace around punctuation marks to - work. + * How "alias.foo = : git cmd ; aliased-command-string" should be + spelled with necessary whitespace around punctuation marks to work + has been more clearly documented (but this will be moot with newer + versions of Git where the parsing rules have been improved). * HTTP Header redaction code has been adjusted for a newer version of cURL library that shows its traces differently from earlier versions. - * An error message given by "git send-email" when given a malformed - address did not give correct information, which has been corrected. + * An error message given by "git send-email", when given a malformed + address, did not show the offending address, which has been corrected. * UBSan options were not propagated through the test framework to git run via the httpd, unlike ASan options, which has been corrected. @@ -229,9 +239,9 @@ Fixes since v2.42 * Update mailmap entry for Derrick. (merge 6e5457d8c7 ds/mailmap-entry-update later to maint). - * In .gitmodules files, submodules are keyed by their names, and the - path to the submodule whose name is $name is specified by the - submodule.$name.path variable. There were a few codepaths that + * In the ".gitmodules" files, submodules are keyed by their names, + and the path to the submodule whose name is $name is specified by + the submodule.$name.path variable. There were a few codepaths that mixed the name and path up when consulting the submodule database, which have been corrected. It took long for these bugs to be found as the name of a submodule initially is the same as its path, and @@ -244,8 +254,8 @@ Fixes since v2.42 corrected. (merge 4adceb5a29 ar/diff-index-merge-base-fix later to maint). - * Fix "git merge-tree" to stop segfaulting when the --attr-source - option is used. + * "git merge-tree" used to segfault when the "--attr-source" + option is used, which has been corrected. (merge e95bafc52f jc/merge-ort-attr-index-fix later to maint). * Unlike "git log --pretty=%D", "git log --pretty="%(decorate)" did @@ -276,7 +286,6 @@ Fixes since v2.42 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. @@ -300,6 +309,10 @@ Fixes since v2.42 non-commit objects, which has been corrected. (merge 7b3c8e9f38 tb/rev-list-unpacked-fix later to maint). + * "To dereference" and "to peel" were sometimes used in in-code + comments and documentation but without description in the glossary. + (merge 893dce2ffb vd/glossary-dereference-peel later to maint). + * Other code cleanup, docfix, build fix, etc. (merge c2c349a15c xz/commit-title-soft-limit-doc later to maint). (merge 1bd809938a tb/format-pack-doc-update later to maint). @@ -307,3 +320,4 @@ Fixes since v2.42 (merge 3ca86adc2d la/strvec-header-fix later to maint). (merge 6789275d37 jc/test-i18ngrep later to maint). (merge 9972cd6004 ps/leakfixes later to maint). + (merge 46edab516b tz/send-email-helpfix later to maint). diff --git a/ReviewingGuidelines.html b/ReviewingGuidelines.html index ee5ebc69a..3a90dc2c8 100644 --- a/ReviewingGuidelines.html +++ b/ReviewingGuidelines.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/SubmittingPatches.html b/SubmittingPatches.html index 838688436..b7f7c8cdd 100644 --- a/SubmittingPatches.html +++ b/SubmittingPatches.html @@ -735,7 +735,7 @@ asciidoc.install();
@@ -1518,7 +1518,7 @@ this problem around.

diff --git a/ToolsForGit.html b/ToolsForGit.html index a9dc149de..6e9b20708 100644 --- a/ToolsForGit.html +++ b/ToolsForGit.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/everyday.html b/everyday.html index 30aae89c8..58e5f99e8 100644 --- a/everyday.html +++ b/everyday.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/git-bisect-lk2009.html b/git-bisect-lk2009.html index 77a4a7d41..61086c69c 100644 --- a/git-bisect-lk2009.html +++ b/git-bisect-lk2009.html @@ -737,7 +737,7 @@ asciidoc.install();

Fighting regressions with git bisect

Christian Couder
<chriscool@tuxfamily.org>
-2023-11-14 +2023-11-20
diff --git a/git-remote-helpers.html b/git-remote-helpers.html index 3489ad3ee..bb9430815 100644 --- a/git-remote-helpers.html +++ b/git-remote-helpers.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/git-tools.html b/git-tools.html index fdc7ba529..cc331233b 100644 --- a/git-tools.html +++ b/git-tools.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/gitglossary.html b/gitglossary.html index 1f79014c3..edda6d94a 100644 --- a/gitglossary.html +++ b/gitglossary.html @@ -928,9 +928,8 @@ to point at the new commit.

- A commit object or an - object that can be recursively dereferenced to - a commit object. + A commit object or an object that + can be recursively dereferenced to a commit object. The following are all commit-ishes: a commit object, a tag object that points to a commit @@ -972,6 +971,27 @@ to point at the new commit.

+dereference +
+
+

+ Referring to a symbolic ref: the action of accessing the + reference pointed at by a symbolic ref. Recursive + dereferencing involves repeating the aforementioned process on the + resulting ref until a non-symbolic reference is found. +

+

Referring to a tag object: the action of accessing the +object a tag points at. Tags are recursively dereferenced by +repeating the operation on the result object until the result has either a +specified object type (where applicable) or any non-"tag" +object type. A synonym for "recursive dereference" in the context of tags is +"peel".

+

Referring to a commit object: the action of accessing +the commit’s tree object. Commits cannot be dereferenced recursively.

+

Unless otherwise specified, "dereferencing" as it used in the context of Git +commands or protocols is implicitly recursive.

+
+
detached HEAD
@@ -1506,6 +1526,15 @@ exclude

+peel +
+
+

+ The action of recursively dereferencing a + tag object. +

+
+
pickaxe
@@ -1812,12 +1841,11 @@ The most notable example is HEAD.

- Symbolic reference: instead of containing the SHA-1 - id itself, it is of the format ref: refs/some/thing and when - referenced, it recursively dereferences to this reference. - HEAD is a prime example of a symref. Symbolic - references are manipulated with the git-symbolic-ref(1) - command. + Symbolic reference: instead of containing the SHA-1 id + itself, it is of the format ref: refs/some/thing and when referenced, + it recursively dereferences to this reference. + HEAD is a prime example of a symref. Symbolic references + are manipulated with the git-symbolic-ref(1) command.

@@ -1882,11 +1910,11 @@ The most notable example is HEAD.

- A tree object or an object - that can be recursively dereferenced to a tree object. - Dereferencing a commit object yields the - tree object corresponding to the revision's - top directory. + A tree object or an object that can + be recursively dereferenced to a tree object. + Dereferencing a commit object yields the tree + object corresponding to the revision's top + directory. The following are all tree-ishes: a commit-ish, a tree object, diff --git a/glossary-content.txt b/glossary-content.txt index 65c89e7b3..59d8ab857 100644 --- a/glossary-content.txt +++ b/glossary-content.txt @@ -98,9 +98,8 @@ to point at the new commit. revision. [[def_commit-ish]]commit-ish (also committish):: - A <> or an - <> that can be recursively dereferenced to - a commit object. + A <> or an <> that + can be recursively <> to a commit object. The following are all commit-ishes: a commit object, a <> that points to a commit @@ -125,6 +124,25 @@ to point at the new commit. dangling object has no references to it from any reference or <> in the <>. +[[def_dereference]]dereference:: + Referring to a <>: the action of accessing the + <> pointed at by a symbolic ref. Recursive + dereferencing involves repeating the aforementioned process on the + resulting ref until a non-symbolic reference is found. ++ +Referring to a <>: the action of accessing the +<> a tag points at. Tags are recursively dereferenced by +repeating the operation on the result object until the result has either a +specified <> (where applicable) or any non-"tag" +object type. A synonym for "recursive dereference" in the context of tags is +"<>". ++ +Referring to a <>: the action of accessing +the commit's tree object. Commits cannot be dereferenced recursively. ++ +Unless otherwise specified, "dereferencing" as it used in the context of Git +commands or protocols is implicitly recursive. + [[def_detached_HEAD]]detached HEAD:: Normally the <> stores the name of a <>, and commands that operate on the @@ -444,6 +462,10 @@ exclude;; of the logical predecessor(s) in the line of development, i.e. its parents. +[[def_peel]]peel:: + The action of recursively <> a + <>. + [[def_pickaxe]]pickaxe:: The term <> refers to an option to the diffcore routines that help select changes that add or delete a given text @@ -620,12 +642,11 @@ The most notable example is `HEAD`. copies of) commit objects of the contained submodules. [[def_symref]]symref:: - Symbolic reference: instead of containing the <> - id itself, it is of the format 'ref: refs/some/thing' and when - referenced, it recursively dereferences to this reference. - '<>' is a prime example of a symref. Symbolic - references are manipulated with the linkgit:git-symbolic-ref[1] - command. + Symbolic reference: instead of containing the <> id + itself, it is of the format 'ref: refs/some/thing' and when referenced, + it recursively <> to this reference. + '<>' is a prime example of a symref. Symbolic references + are manipulated with the linkgit:git-symbolic-ref[1] command. [[def_tag]]tag:: A <> under `refs/tags/` namespace that points to an @@ -661,11 +682,11 @@ The most notable example is `HEAD`. <> is equivalent to a <>. [[def_tree-ish]]tree-ish (also treeish):: - A <> or an <> - that can be recursively dereferenced to a tree object. - Dereferencing a <> yields the - tree object corresponding to the <>'s - top <>. + A <> or an <> that can + be recursively <> to a tree object. + Dereferencing a <> yields the tree + object corresponding to the <>'s top + <>. The following are all tree-ishes: a <>, a tree object, diff --git a/howto-index.html b/howto-index.html index 0577b452d..193454784 100644 --- a/howto-index.html +++ b/howto-index.html @@ -735,7 +735,7 @@ asciidoc.install();

@@ -896,7 +896,7 @@ later validate it.

diff --git a/howto/coordinate-embargoed-releases.html b/howto/coordinate-embargoed-releases.html index 65a8b6982..d573020c3 100644 --- a/howto/coordinate-embargoed-releases.html +++ b/howto/coordinate-embargoed-releases.html @@ -1038,7 +1038,7 @@ Thanks, diff --git a/howto/keep-canonical-history-correct.html b/howto/keep-canonical-history-correct.html index 8580f46a9..e19d73455 100644 --- a/howto/keep-canonical-history-correct.html +++ b/howto/keep-canonical-history-correct.html @@ -735,7 +735,7 @@ asciidoc.install();
@@ -939,7 +939,7 @@ tip of your master again and redo the two merges:

diff --git a/howto/maintain-git.html b/howto/maintain-git.html index 6132e5589..ec35401f3 100644 --- a/howto/maintain-git.html +++ b/howto/maintain-git.html @@ -735,7 +735,7 @@ asciidoc.install();
@@ -1479,7 +1479,7 @@ $ git update-ref -d $mf/ai/topic diff --git a/howto/new-command.html b/howto/new-command.html index 354edfbd2..9bafae85b 100644 --- a/howto/new-command.html +++ b/howto/new-command.html @@ -735,7 +735,7 @@ asciidoc.install();
@@ -864,7 +864,7 @@ letter [PATCH 0/n]. diff --git a/howto/rebase-from-internal-branch.html b/howto/rebase-from-internal-branch.html index 2575e28e1..35c41f9c2 100644 --- a/howto/rebase-from-internal-branch.html +++ b/howto/rebase-from-internal-branch.html @@ -735,7 +735,7 @@ asciidoc.install();
@@ -896,7 +896,7 @@ the #1' commit.

diff --git a/howto/rebuild-from-update-hook.html b/howto/rebuild-from-update-hook.html index b62ff3e9e..fc3ee9e24 100644 --- a/howto/rebuild-from-update-hook.html +++ b/howto/rebuild-from-update-hook.html @@ -735,7 +735,7 @@ asciidoc.install();
@@ -848,7 +848,7 @@ This is still crude and does not protect against simultaneous diff --git a/howto/recover-corrupted-blob-object.html b/howto/recover-corrupted-blob-object.html index 9ff3daa24..c3c0eed7b 100644 --- a/howto/recover-corrupted-blob-object.html +++ b/howto/recover-corrupted-blob-object.html @@ -735,7 +735,7 @@ asciidoc.install();
@@ -881,7 +881,7 @@ thing.

diff --git a/howto/recover-corrupted-object-harder.html b/howto/recover-corrupted-object-harder.html index 709bbb40d..6a38ae43e 100644 --- a/howto/recover-corrupted-object-harder.html +++ b/howto/recover-corrupted-object-harder.html @@ -735,7 +735,7 @@ asciidoc.install();
@@ -1190,7 +1190,7 @@ int main(int argc, char **argv) diff --git a/howto/revert-a-faulty-merge.html b/howto/revert-a-faulty-merge.html index 8d4ae1427..5e2e36ea6 100644 --- a/howto/revert-a-faulty-merge.html +++ b/howto/revert-a-faulty-merge.html @@ -735,7 +735,7 @@ asciidoc.install();
@@ -1026,7 +1026,7 @@ P---o---o---M---x---x---W---x---M2 diff --git a/howto/revert-branch-rebase.html b/howto/revert-branch-rebase.html index bca8ec870..62f7e16c1 100644 --- a/howto/revert-branch-rebase.html +++ b/howto/revert-branch-rebase.html @@ -735,7 +735,7 @@ asciidoc.install();
@@ -908,7 +908,7 @@ Committed merge 7fb9b7262a1d1e0a47bbfdcbbcf50ce0635d3f8f diff --git a/howto/separating-topic-branches.html b/howto/separating-topic-branches.html index 2764fc05a..5e88f25a9 100644 --- a/howto/separating-topic-branches.html +++ b/howto/separating-topic-branches.html @@ -735,7 +735,7 @@ asciidoc.install();
@@ -842,7 +842,7 @@ o---o"master" diff --git a/howto/setup-git-server-over-http.html b/howto/setup-git-server-over-http.html index a8d08084d..a29b67764 100644 --- a/howto/setup-git-server-over-http.html +++ b/howto/setup-git-server-over-http.html @@ -735,7 +735,7 @@ asciidoc.install();
@@ -1072,7 +1072,7 @@ help diagnosing the problem, but removes security checks.

diff --git a/howto/update-hook-example.html b/howto/update-hook-example.html index 41a23221b..898b00560 100644 --- a/howto/update-hook-example.html +++ b/howto/update-hook-example.html @@ -735,7 +735,7 @@ asciidoc.install();
@@ -931,7 +931,7 @@ that JC can make non-fast-forward pushes on it.

diff --git a/howto/use-git-daemon.html b/howto/use-git-daemon.html index cebe25c3f..33bfe6ca9 100644 --- a/howto/use-git-daemon.html +++ b/howto/use-git-daemon.html @@ -735,7 +735,7 @@ asciidoc.install();
@@ -792,7 +792,7 @@ a good practice to put the paths after a "--" separator.

diff --git a/howto/using-merge-subtree.html b/howto/using-merge-subtree.html index ad8ecfc4c..1c0a90440 100644 --- a/howto/using-merge-subtree.html +++ b/howto/using-merge-subtree.html @@ -735,7 +735,7 @@ asciidoc.install();
@@ -849,7 +849,7 @@ Please note that if the other project merges from you, then it will diff --git a/howto/using-signed-tag-in-pull-request.html b/howto/using-signed-tag-in-pull-request.html index 3c6c1cd5f..1fb56b951 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();
@@ -953,7 +953,7 @@ as part of the merge commit.

diff --git a/technical/api-error-handling.html b/technical/api-error-handling.html index ae4f413a7..4a573f5ce 100644 --- a/technical/api-error-handling.html +++ b/technical/api-error-handling.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/technical/api-index.html b/technical/api-index.html index d3b89dc37..1c1267c47 100644 --- a/technical/api-index.html +++ b/technical/api-index.html @@ -735,7 +735,7 @@ asciidoc.install();
@@ -776,7 +776,7 @@ documents them.

diff --git a/technical/api-merge.html b/technical/api-merge.html index 65df5f6f8..ed4d6e97e 100644 --- a/technical/api-merge.html +++ b/technical/api-merge.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/technical/api-parse-options.html b/technical/api-parse-options.html index a8e442ecb..9a6dd4386 100644 --- a/technical/api-parse-options.html +++ b/technical/api-parse-options.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/technical/api-simple-ipc.html b/technical/api-simple-ipc.html index 199657ec7..abbb70092 100644 --- a/technical/api-simple-ipc.html +++ b/technical/api-simple-ipc.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/technical/api-trace2.html b/technical/api-trace2.html index f270eb998..9b095205b 100644 --- a/technical/api-trace2.html +++ b/technical/api-trace2.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/technical/bitmap-format.html b/technical/bitmap-format.html index 0c1ba25e6..d3a461857 100644 --- a/technical/bitmap-format.html +++ b/technical/bitmap-format.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/technical/bundle-uri.html b/technical/bundle-uri.html index 31adbffad..796804290 100644 --- a/technical/bundle-uri.html +++ b/technical/bundle-uri.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/technical/hash-function-transition.html b/technical/hash-function-transition.html index c365ccc5c..3246fe9d5 100644 --- a/technical/hash-function-transition.html +++ b/technical/hash-function-transition.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/technical/long-running-process-protocol.html b/technical/long-running-process-protocol.html index a8c7bd332..7529f956b 100644 --- a/technical/long-running-process-protocol.html +++ b/technical/long-running-process-protocol.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/technical/multi-pack-index.html b/technical/multi-pack-index.html index ca67389aa..05b75b8a6 100644 --- a/technical/multi-pack-index.html +++ b/technical/multi-pack-index.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/technical/pack-heuristics.html b/technical/pack-heuristics.html index 7af99490d..c1abfaba3 100644 --- a/technical/pack-heuristics.html +++ b/technical/pack-heuristics.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/technical/parallel-checkout.html b/technical/parallel-checkout.html index d2cd730c6..564e4fede 100644 --- a/technical/parallel-checkout.html +++ b/technical/parallel-checkout.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/technical/partial-clone.html b/technical/partial-clone.html index 217a891d6..22b779b62 100644 --- a/technical/partial-clone.html +++ b/technical/partial-clone.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/technical/racy-git.html b/technical/racy-git.html index 76f034d3b..88ffb00e5 100644 --- a/technical/racy-git.html +++ b/technical/racy-git.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/technical/scalar.html b/technical/scalar.html index 8e5708a8f..8a4c6101b 100644 --- a/technical/scalar.html +++ b/technical/scalar.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/technical/send-pack-pipeline.html b/technical/send-pack-pipeline.html index f0a6b20b6..63b752807 100644 --- a/technical/send-pack-pipeline.html +++ b/technical/send-pack-pipeline.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/technical/shallow.html b/technical/shallow.html index 54e374b55..9de5814d9 100644 --- a/technical/shallow.html +++ b/technical/shallow.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/technical/trivial-merge.html b/technical/trivial-merge.html index 281634959..402496a1a 100644 --- a/technical/trivial-merge.html +++ b/technical/trivial-merge.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/user-manual.html b/user-manual.html index 999b237a4..13915fd79 100644 --- a/user-manual.html +++ b/user-manual.html @@ -1,5 +1,5 @@ -Git User Manual

Git User Manual

Revision History
2023-11-14

Table of Contents

Introduction
1. Repositories and Branches
How to get a Git repository
How to check out a different version of a project
Understanding History: Commits
Understanding history: commits, parents, and reachability
Understanding history: History diagrams
Understanding history: What is a branch?
Manipulating branches
Examining an old version without creating a new branch
Examining branches from a remote repository
Naming branches, tags, and other references
Updating a repository with git fetch
Fetching branches from other repositories
2. Exploring Git history
How to use bisect to find a regression
Naming commits
Creating tags
Browsing revisions
Generating diffs
Viewing old file versions
Examples
Counting the number of commits on a branch
Check whether two branches point at the same history
Find first tagged version including a given fix
Showing commits unique to a given branch
Creating a changelog and tarball for a software release
Finding commits referencing a file with given content
3. Developing with Git
Telling Git your name
Creating a new repository
How to make a commit
Creating good commit messages
Ignoring files
How to merge
Resolving a merge
Getting conflict-resolution help during a merge
Undoing a merge
Fast-forward merges
Fixing mistakes
Fixing a mistake with a new commit
Fixing a mistake by rewriting history
Checking out an old version of a file
Temporarily setting aside work in progress
Ensuring good performance
Ensuring reliability
Checking the repository for corruption
Recovering lost changes
4. Sharing development with others
Getting updates with git pull
Submitting patches to a project
Importing patches to a project
Public Git repositories
Setting up a public repository
Exporting a Git repository via the Git protocol
Exporting a git repository via HTTP
Pushing changes to a public repository
What to do when a push fails
Setting up a shared repository
Allowing web browsing of a repository
How to get a Git repository with minimal history
Examples
Maintaining topic branches for a Linux subsystem maintainer
5. Rewriting history and maintaining patch series
Creating the perfect patch series
Keeping a patch series up to date using git rebase
Rewriting a single commit
Reordering or selecting from a patch series
Using interactive rebases
Other tools
Problems with rewriting history
Why bisecting merge commits can be harder than bisecting linear history
6. Advanced branch management
Fetching individual branches
git fetch and fast-forwards
Forcing git fetch to do non-fast-forward updates
Configuring remote-tracking branches
7. Git concepts
The Object Database
Commit Object
Tree Object
Blob Object
Trust
Tag Object
How Git stores objects efficiently: pack files
Dangling objects
Recovering from repository corruption
The index
8. Submodules
Pitfalls with submodules
9. Low-level Git operations
Object access and manipulation
The Workflow
working directory → index
index → object database
object database → index
index → working directory
Tying it all together
Examining the data
Merging multiple trees
Merging multiple trees, continued
10. Hacking Git
Object storage format
A birds-eye view of Git’s source code
11. Git Glossary
Git explained
A. Git Quick Reference
Creating a new repository
Managing branches
Exploring history
Making changes
Merging
Sharing your changes
Repository maintenance
B. Notes and todo list for this manual
Todo list

Introduction

Git is a fast distributed revision control system.

This manual is designed to be readable by someone with basic UNIX +Git User Manual

Git User Manual

Revision History
2023-11-20

Table of Contents

Introduction
1. Repositories and Branches
How to get a Git repository
How to check out a different version of a project
Understanding History: Commits
Understanding history: commits, parents, and reachability
Understanding history: History diagrams
Understanding history: What is a branch?
Manipulating branches
Examining an old version without creating a new branch
Examining branches from a remote repository
Naming branches, tags, and other references
Updating a repository with git fetch
Fetching branches from other repositories
2. Exploring Git history
How to use bisect to find a regression
Naming commits
Creating tags
Browsing revisions
Generating diffs
Viewing old file versions
Examples
Counting the number of commits on a branch
Check whether two branches point at the same history
Find first tagged version including a given fix
Showing commits unique to a given branch
Creating a changelog and tarball for a software release
Finding commits referencing a file with given content
3. Developing with Git
Telling Git your name
Creating a new repository
How to make a commit
Creating good commit messages
Ignoring files
How to merge
Resolving a merge
Getting conflict-resolution help during a merge
Undoing a merge
Fast-forward merges
Fixing mistakes
Fixing a mistake with a new commit
Fixing a mistake by rewriting history
Checking out an old version of a file
Temporarily setting aside work in progress
Ensuring good performance
Ensuring reliability
Checking the repository for corruption
Recovering lost changes
4. Sharing development with others
Getting updates with git pull
Submitting patches to a project
Importing patches to a project
Public Git repositories
Setting up a public repository
Exporting a Git repository via the Git protocol
Exporting a git repository via HTTP
Pushing changes to a public repository
What to do when a push fails
Setting up a shared repository
Allowing web browsing of a repository
How to get a Git repository with minimal history
Examples
Maintaining topic branches for a Linux subsystem maintainer
5. Rewriting history and maintaining patch series
Creating the perfect patch series
Keeping a patch series up to date using git rebase
Rewriting a single commit
Reordering or selecting from a patch series
Using interactive rebases
Other tools
Problems with rewriting history
Why bisecting merge commits can be harder than bisecting linear history
6. Advanced branch management
Fetching individual branches
git fetch and fast-forwards
Forcing git fetch to do non-fast-forward updates
Configuring remote-tracking branches
7. Git concepts
The Object Database
Commit Object
Tree Object
Blob Object
Trust
Tag Object
How Git stores objects efficiently: pack files
Dangling objects
Recovering from repository corruption
The index
8. Submodules
Pitfalls with submodules
9. Low-level Git operations
Object access and manipulation
The Workflow
working directory → index
index → object database
object database → index
index → working directory
Tying it all together
Examining the data
Merging multiple trees
Merging multiple trees, continued
10. Hacking Git
Object storage format
A birds-eye view of Git’s source code
11. Git Glossary
Git explained
A. Git Quick Reference
Creating a new repository
Managing branches
Exploring history
Making changes
Merging
Sharing your changes
Repository maintenance
B. Notes and todo list for this manual
Todo list

Introduction

Git is a fast distributed revision control system.

This manual is designed to be readable by someone with basic UNIX command-line skills, but no previous knowledge of Git.

Chapter 1, Repositories and Branches and Chapter 2, Exploring Git history 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 @@ -2078,9 +2078,8 @@ to point at the new commit.

commit-ish (also committish)
- A commit object or an - object that can be recursively dereferenced to - a commit object. + A commit object or an object that + can be recursively dereferenced to a commit object. The following are all commit-ishes: a commit object, a tag object that points to a commit @@ -2108,6 +2107,20 @@ to point at the new commit.

dangling object has no references to it from any reference or object in the repository.
+dereference +

+ Referring to a symbolic ref: the action of accessing the + reference pointed at by a symbolic ref. Recursive + dereferencing involves repeating the aforementioned process on the + resulting ref until a non-symbolic reference is found. +

Referring to a tag object: the action of accessing the +object a tag points at. Tags are recursively dereferenced by +repeating the operation on the result object until the result has either a +specified object type (where applicable) or any non-"tag" +object type. A synonym for "recursive dereference" in the context of tags is +"peel".

Referring to a commit object: the action of accessing +the commit’s tree object. Commits cannot be dereferenced recursively.

Unless otherwise specified, "dereferencing" as it used in the context of Git +commands or protocols is implicitly recursive.

detached HEAD

Normally the HEAD stores the name of a @@ -2435,6 +2448,11 @@ exclude of the logical predecessor(s) in the line of development, i.e. its parents.

+peel +
+ The action of recursively dereferencing a + tag object. +
pickaxe
The term pickaxe refers to an option to the diffcore @@ -2633,12 +2651,11 @@ The most notable example is HEAD.

symref
- Symbolic reference: instead of containing the SHA-1 - id itself, it is of the format ref: refs/some/thing and when - referenced, it recursively dereferences to this reference. - HEAD is a prime example of a symref. Symbolic - references are manipulated with the git-symbolic-ref(1) - command. + Symbolic reference: instead of containing the SHA-1 id + itself, it is of the format ref: refs/some/thing and when referenced, + it recursively dereferences to this reference. + HEAD is a prime example of a symref. Symbolic references + are manipulated with the git-symbolic-ref(1) command.
tag
@@ -2679,11 +2696,11 @@ The most notable example is HEAD.

tree-ish (also treeish)
- A tree object or an object - that can be recursively dereferenced to a tree object. - Dereferencing a commit object yields the - tree object corresponding to the revision's - top directory. + A tree object or an object that can + be recursively dereferenced to a tree object. + Dereferencing a commit object yields the tree + object corresponding to the revision's top + directory. The following are all tree-ishes: a commit-ish, a tree object, -- cgit 1.2.3-korg