From 7ae46b40202f2928d34d523c62e7c215f44f91bf Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 27 Dec 2023 15:51:52 -0800 Subject: Autogenerated HTML docs for v2.43.0-232-ge7955 --- MyFirstContribution.html | 2 +- MyFirstObjectWalk.html | 2 +- RelNotes/2.44.0.txt | 48 ++++++++++++++++++++++++++++ ReviewingGuidelines.html | 2 +- SubmittingPatches.html | 2 +- ToolsForGit.html | 2 +- everyday.html | 2 +- git-add.html | 4 +-- git-add.txt | 2 +- git-bisect.html | 4 +-- git-bisect.txt | 2 +- git-checkout.html | 6 ++-- git-checkout.txt | 4 ++- git-config.html | 2 +- git-diff.html | 4 +-- git-diff.txt | 2 +- git-merge.html | 6 ++-- git-merge.txt | 2 +- git-pull.html | 2 +- git-remote-helpers.html | 2 +- git-switch.html | 10 ++++-- git-switch.txt | 9 ++++-- git.html | 9 +++--- git.txt | 7 ++-- 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 +-- merge-options.txt | 2 +- technical/api-error-handling.html | 2 +- technical/api-index.html | 2 +- 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 +- technical/unit-tests.html | 2 +- user-manual.html | 4 +-- user-manual.txt | 2 +- 63 files changed, 155 insertions(+), 92 deletions(-) diff --git a/MyFirstContribution.html b/MyFirstContribution.html index 5474fd627..5ae019fa7 100644 --- a/MyFirstContribution.html +++ b/MyFirstContribution.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/MyFirstObjectWalk.html b/MyFirstObjectWalk.html index b90e93bbe..e6df6a148 100644 --- a/MyFirstObjectWalk.html +++ b/MyFirstObjectWalk.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/RelNotes/2.44.0.txt b/RelNotes/2.44.0.txt index b44e88fb1..37d516191 100644 --- a/RelNotes/2.44.0.txt +++ b/RelNotes/2.44.0.txt @@ -1,6 +1,13 @@ Git v2.44 Release Notes ======================= +Backward Compatibility Notes + + * "git chekcout -B " used to allow switching to a branch that + is in use on another worktree, but this was by mistake. The users + need to use "--ignore-other-worktrees" option. + + UI, Workflows & Features * "git add" and "git stash" learned to support the ":(attr:...)" @@ -19,6 +26,14 @@ UI, Workflows & Features arguments to the "add/set" subcommands of "git sparse-checkout" better. + * "git checkout -B []" allowed a branch that is + in use in another worktree to be updated and checked out, which + might be a bit unexpected. The rule has been tightened, which is a + breaking change. "--ignore-other-worktrees" option is required to + unbreak you, if you are used to the current behaviour that "-B" + overrides the safety. + (merge b23285a921 jc/checkout-B-branch-in-use later to maint). + Performance, Internal Implementation, Development Support etc. @@ -36,6 +51,19 @@ Performance, Internal Implementation, Development Support etc. * Subject approxidate() and show_date() machinery to OSS-Fuzz. + * A new helper to let us pretend that we called lstat() when we know + our cache_entry is up-to-date via fsmonitor. + + * The optimization based on fsmonitor in the "diff --cached" + codepath is resurrected with the "fake-lstat" introduced earlier. + + * Test balloon to use C99 "bool" type from has been + added. + + * "git clone" has been prepared to allow cloning a repository with + non-default hash function into a repository that uses the reftable + backend. + Fixes since v2.43 ----------------- @@ -94,6 +122,18 @@ Fixes since v2.43 specified with valueless "true", which has been corrected. (merge d49cb162fa jk/implicit-true later to maint). + * Code clean-up for sanity checking of command line options for "git + show-ref". + (merge 7382497372 rs/show-ref-incompatible-options later to maint). + + * The code to parse the From e-mail header has been updated to avoid + recursion. + (merge dee182941f jk/mailinfo-iterative-unquote-comment later to maint). + + * "git fetch --atomic" issued an unnecessary empty error message, + which has been corrected. + (merge 18ce48918c jx/fetch-atomic-error-message-fix later to maint). + * Other code cleanup, docfix, build fix, etc. (merge 50f1abcff6 js/packfile-h-typofix later to maint). (merge cbf498eb53 jb/reflog-expire-delete-dry-run-options later to maint). @@ -103,3 +143,11 @@ Fixes since v2.43 (merge e4299d26d4 mk/doc-gitfile-more later to maint). (merge 792b86283b rs/incompatible-options-messages later to maint). (merge ea8f9494ab jk/config-cleanup later to maint). + (merge d1bd3a8c34 jk/mailinfo-oob-read-fix later to maint). + (merge c0cadb0576 ps/reftable-fixes later to maint). + (merge 647b5e0998 ps/chainlint-self-check-update later to maint). + (merge 68fcebfb1a es/add-doc-list-short-form-of-all-in-synopsis later to maint). + (merge bc62d27d5c jc/doc-most-refs-are-not-that-special later to maint). + (merge 6d6f1cd7ee jc/doc-misspelt-refs-fix later to maint). + (merge 37e8d795be sp/test-i18ngrep later to maint). + (merge fbc6526ea6 rs/t6300-compressed-size-fix later to maint). diff --git a/ReviewingGuidelines.html b/ReviewingGuidelines.html index 310e9158f..2f476e05b 100644 --- a/ReviewingGuidelines.html +++ b/ReviewingGuidelines.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/SubmittingPatches.html b/SubmittingPatches.html index 11d167319..fc7b33db9 100644 --- a/SubmittingPatches.html +++ b/SubmittingPatches.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/ToolsForGit.html b/ToolsForGit.html index f51c505dc..9835eb29e 100644 --- a/ToolsForGit.html +++ b/ToolsForGit.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/everyday.html b/everyday.html index 62717b548..ad790d8d3 100644 --- a/everyday.html +++ b/everyday.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/git-add.html b/git-add.html index 1514e39e9..293aef4ae 100644 --- a/git-add.html +++ b/git-add.html @@ -750,7 +750,7 @@ git-add(1) Manual Page
git add [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | -i] [--patch | -p]
-          [--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]] [--sparse]
+          [--edit | -e] [--[no-]all | -A | --[no-]ignore-removal | [--update | -u]] [--sparse]
           [--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing] [--renormalize]
           [--chmod=(+|-)x] [--pathspec-from-file=<file> [--pathspec-file-nul]]
           [--] [<pathspec>…]
@@ -1425,7 +1425,7 @@ add.interactive.useBuiltin diff --git a/git-add.txt b/git-add.txt index ed44c1cb3..3d2e67071 100644 --- a/git-add.txt +++ b/git-add.txt @@ -9,7 +9,7 @@ SYNOPSIS -------- [verse] 'git add' [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | -i] [--patch | -p] - [--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]] [--sparse] + [--edit | -e] [--[no-]all | -A | --[no-]ignore-removal | [--update | -u]] [--sparse] [--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing] [--renormalize] [--chmod=(+|-)x] [--pathspec-from-file= [--pathspec-file-nul]] [--] [...] diff --git a/git-bisect.html b/git-bisect.html index f4b649d1e..4ece8bf1f 100644 --- a/git-bisect.html +++ b/git-bisect.html @@ -1063,7 +1063,7 @@ determine the eventual outcome of the bisect session.

Do not checkout the new working tree at each iteration of the bisection -process. Instead just update a special reference named BISECT_HEAD to make +process. Instead just update the reference named BISECT_HEAD to make it point to the commit that should be tested.

This option may be useful when the test you would perform in each step does not require a checked out tree.

@@ -1244,7 +1244,7 @@ help or git bisect -h to get a long usage description.

diff --git a/git-bisect.txt b/git-bisect.txt index 191b4a42b..aa02e4622 100644 --- a/git-bisect.txt +++ b/git-bisect.txt @@ -362,7 +362,7 @@ OPTIONS --no-checkout:: + Do not checkout the new working tree at each iteration of the bisection -process. Instead just update a special reference named `BISECT_HEAD` to make +process. Instead just update the reference named `BISECT_HEAD` to make it point to the commit that should be tested. + This option may be useful when the test you would perform in each step diff --git a/git-checkout.html b/git-checkout.html index d9e0cf9bb..5926f9264 100644 --- a/git-checkout.html +++ b/git-checkout.html @@ -813,7 +813,9 @@ is reset. This is the transactional equivalent of

$ git checkout <branch>

that is to say, the branch is not reset/created unless "git checkout" is -successful.

+successful (e.g., when the branch is in use in another worktree, not +just the current branch stays the same, but the branch is not reset to +the start-point, either).

git checkout --detach [<branch>] @@ -1633,7 +1635,7 @@ checkout.thresholdForParallelism diff --git a/git-checkout.txt b/git-checkout.txt index 240c54639..55a50b5b2 100644 --- a/git-checkout.txt +++ b/git-checkout.txt @@ -63,7 +63,9 @@ $ git checkout ------------ + that is to say, the branch is not reset/created unless "git checkout" is -successful. +successful (e.g., when the branch is in use in another worktree, not +just the current branch stays the same, but the branch is not reset to +the start-point, either). 'git checkout' --detach []:: 'git checkout' [--detach] :: diff --git a/git-config.html b/git-config.html index f79d468ec..2fdeeec39 100644 --- a/git-config.html +++ b/git-config.html @@ -5928,7 +5928,7 @@ format.notes --notes=<ref>, where ref is the non-boolean value. Defaults to false.

-

If one wishes to use the ref ref/notes/true, please use that literal +

If one wishes to use the ref refs/notes/true, please use that literal instead.

This configuration can be specified multiple times in order to allow multiple notes refs to be included. In that case, it will behave diff --git a/git-diff.html b/git-diff.html index 34f703e50..e585ddaf9 100644 --- a/git-diff.html +++ b/git-diff.html @@ -877,7 +877,7 @@ of <commit> and HEAD. git diff --merge-base A is equivalent noted that all of the <commit> in the above description, except in the --merge-base case and in the last two forms that use .. notations, can be any <tree>. A tree of interest is the one pointed to -by the special ref AUTO_MERGE, which is written by the ort merge +by the ref named AUTO_MERGE, which is written by the ort merge strategy upon hitting merge conflicts (see git-merge(1)). Comparing the working tree with AUTO_MERGE shows changes you’ve made so far to resolve textual conflicts (see the examples below).

@@ -3679,7 +3679,7 @@ diff.colorMovedWS diff --git a/git-diff.txt b/git-diff.txt index 08087ffad..c065f023e 100644 --- a/git-diff.txt +++ b/git-diff.txt @@ -103,7 +103,7 @@ Just in case you are doing something exotic, it should be noted that all of the in the above description, except in the `--merge-base` case and in the last two forms that use `..` notations, can be any . A tree of interest is the one pointed to -by the special ref `AUTO_MERGE`, which is written by the 'ort' merge +by the ref named `AUTO_MERGE`, which is written by the 'ort' merge strategy upon hitting merge conflicts (see linkgit:git-merge[1]). Comparing the working tree with `AUTO_MERGE` shows changes you've made so far to resolve textual conflicts (see the examples below). diff --git a/git-merge.html b/git-merge.html index 821f0f67c..79cade40e 100644 --- a/git-merge.html +++ b/git-merge.html @@ -1089,7 +1089,7 @@ option can be used to override --squash.

Automatically create a temporary stash entry before the operation - begins, record it in the special ref MERGE_AUTOSTASH + begins, record it in the ref MERGE_AUTOSTASH and apply it after the operation ends. This means that you can run the operation on a dirty worktree. However, use with care: the final stash application after a successful @@ -1307,7 +1307,7 @@ For conflicting paths, the index file records up to three

  • -A special ref AUTO_MERGE is written, pointing to a tree +A ref named AUTO_MERGE is written, pointing to a tree corresponding to the current content of the working tree (including conflict markers for textual conflicts). Note that this ref is only written when the ort merge strategy is used (the default). @@ -2336,7 +2336,7 @@ merge.<driver>.recursive

    diff --git a/git-merge.txt b/git-merge.txt index e8ab34031..3e9557a44 100644 --- a/git-merge.txt +++ b/git-merge.txt @@ -196,7 +196,7 @@ happens: can inspect the stages with `git ls-files -u`). The working tree files contain the result of the merge operation; i.e. 3-way merge results with familiar conflict markers `<<<` `===` `>>>`. -5. A special ref `AUTO_MERGE` is written, pointing to a tree +5. A ref named `AUTO_MERGE` is written, pointing to a tree corresponding to the current content of the working tree (including conflict markers for textual conflicts). Note that this ref is only written when the 'ort' merge strategy is used (the default). diff --git a/git-pull.html b/git-pull.html index a84a3fd97..98e52b9aa 100644 --- a/git-pull.html +++ b/git-pull.html @@ -1110,7 +1110,7 @@ option can be used to override --squash.

  • Automatically create a temporary stash entry before the operation - begins, record it in the special ref MERGE_AUTOSTASH + begins, record it in the ref MERGE_AUTOSTASH and apply it after the operation ends. This means that you can run the operation on a dirty worktree. However, use with care: the final stash application after a successful diff --git a/git-remote-helpers.html b/git-remote-helpers.html index e7a9a9125..b8011d5c8 100644 --- a/git-remote-helpers.html +++ b/git-remote-helpers.html @@ -735,7 +735,7 @@ asciidoc.install();

    diff --git a/git-switch.html b/git-switch.html index 1f9277ff2..651930bd8 100644 --- a/git-switch.html +++ b/git-switch.html @@ -823,14 +823,18 @@ out at most one of A and B, in which case it defaults

    Create a new branch named <new-branch> starting at - <start-point> before switching to the branch. This is a - convenient shortcut for: + <start-point> before switching to the branch. This is the + transactional equivalent of

    $ git branch <new-branch>
     $ git switch <new-branch>
    +

    that is to say, the branch is not reset/created unless "git switch" is +successful (e.g., when the branch is in use in another worktree, not +just the current branch stays the same, but the branch is not reset to +the start-point, either).

    -C <new-branch> @@ -1199,7 +1203,7 @@ checkout.thresholdForParallelism diff --git a/git-switch.txt b/git-switch.txt index c60fc9c13..6137421ed 100644 --- a/git-switch.txt +++ b/git-switch.txt @@ -59,13 +59,18 @@ out at most one of `A` and `B`, in which case it defaults to `HEAD`. -c :: --create :: Create a new branch named `` starting at - `` before switching to the branch. This is a - convenient shortcut for: + `` before switching to the branch. This is the + transactional equivalent of + ------------ $ git branch $ git switch ------------ ++ +that is to say, the branch is not reset/created unless "git switch" is +successful (e.g., when the branch is in use in another worktree, not +just the current branch stays the same, but the branch is not reset to +the start-point, either). -C :: --force-create :: diff --git a/git.html b/git.html index 714002647..c937a22e6 100644 --- a/git.html +++ b/git.html @@ -3755,10 +3755,11 @@ purpose.

    When first created, objects are stored in individual files, but for efficiency may later be compressed together into "pack files".

    Named pointers called refs mark interesting points in history. A ref -may contain the SHA-1 name of an object or the name of another ref. Refs -with names beginning ref/head/ contain the SHA-1 name of the most +may contain the SHA-1 name of an object or the name of another ref (the +latter is called a "symbolic ref"). +Refs with names beginning refs/head/ contain the SHA-1 name of the most recent commit (or "head") of a branch under development. SHA-1 names of -tags of interest are stored under ref/tags/. A special ref named +tags of interest are stored under refs/tags/. A symbolic ref named HEAD contains the name of the currently checked-out branch.

    The index file is initialized with a list of all paths and, for each path, a blob object and a set of attributes. The blob object represents @@ -3836,7 +3837,7 @@ the Git Security mailing list <

    diff --git a/git.txt b/git.txt index 4698d7a42..bf9e6af69 100644 --- a/git.txt +++ b/git.txt @@ -1025,10 +1025,11 @@ When first created, objects are stored in individual files, but for efficiency may later be compressed together into "pack files". Named pointers called refs mark interesting points in history. A ref -may contain the SHA-1 name of an object or the name of another ref. Refs -with names beginning `ref/head/` contain the SHA-1 name of the most +may contain the SHA-1 name of an object or the name of another ref (the +latter is called a "symbolic ref"). +Refs with names beginning `refs/head/` contain the SHA-1 name of the most recent commit (or "head") of a branch under development. SHA-1 names of -tags of interest are stored under `ref/tags/`. A special ref named +tags of interest are stored under `refs/tags/`. A symbolic ref named `HEAD` contains the name of the currently checked-out branch. The index file is initialized with a list of all paths and, for each diff --git a/howto/coordinate-embargoed-releases.html b/howto/coordinate-embargoed-releases.html index e2ddfd451..0584b507e 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 652386de0..b48d0b64a 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 3a3faf4d7..6dfba5690 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 e2b2916bb..4fef81698 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 547986764..da565b2b4 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 ab8d18c52..a606e9959 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 96023713b..18ce77486 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 76ae4e6c1..9e713fe34 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 5d2652e27..025537be9 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 ae0a64ce5..a679dd1c1 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 d94767207..15d6bc0a8 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 7aad8effb..ae0621294 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 475066f11..271cb5665 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 dfbf1e927..8d04be56e 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 93c5a944f..b640da8db 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 8001a28fa..6732d2530 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/merge-options.txt b/merge-options.txt index d8f7cd7ca..3eaefc4e9 100644 --- a/merge-options.txt +++ b/merge-options.txt @@ -191,7 +191,7 @@ endif::git-pull[] --autostash:: --no-autostash:: Automatically create a temporary stash entry before the operation - begins, record it in the special ref `MERGE_AUTOSTASH` + begins, record it in the ref `MERGE_AUTOSTASH` and apply it after the operation ends. This means that you can run the operation on a dirty worktree. However, use with care: the final stash application after a successful diff --git a/technical/api-error-handling.html b/technical/api-error-handling.html index 22dd3505a..63c7b24cc 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 63df0aaf4..a9c448a7f 100644 --- a/technical/api-index.html +++ b/technical/api-index.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/api-merge.html b/technical/api-merge.html index 423ca4931..5dc5896de 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 79d0246c6..0d21c7cb2 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 bcd116c83..a78aae409 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 20e97d571..25b159825 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 bb959cfc5..d854b6463 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 f04f6c412..fb45f6746 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 abd898055..1a19d38b2 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 513876955..a5550c89c 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 79ae52a9c..fcf7a46bb 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 098acce3e..4c41363d7 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 8185c6de0..7b677e0fb 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 176075fd3..e4535da09 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 97649dcbe..262c41eea 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 75d1a9658..1723a1ad2 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 bbacb48a0..cdc140248 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 81c6d9d1e..1e8718bb3 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 c34d32c37..3029d9220 100644 --- a/technical/trivial-merge.html +++ b/technical/trivial-merge.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/unit-tests.html b/technical/unit-tests.html index 0942cd0f4..557358cac 100644 --- a/technical/unit-tests.html +++ b/technical/unit-tests.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/user-manual.html b/user-manual.html index c73a253a9..23718b202 100644 --- a/user-manual.html +++ b/user-manual.html @@ -1,5 +1,5 @@ -Git User Manual

    Git User Manual

    Revision History
    2023-12-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 +Git User Manual

    Git User Manual

    Revision History
    2023-12-27

    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 @@ -580,7 +580,7 @@ $ git diff -2 file.txt # diff against stage 2 $ git diff --ours file.txt # same as the above $ git diff -3 file.txt # diff against stage 3 $ git diff --theirs file.txt # same as the above.

    When using the ort merge strategy (the default), before updating the working -tree with the result of the merge, Git writes a special ref named AUTO_MERGE +tree with the result of the merge, Git writes a ref named AUTO_MERGE reflecting the state of the tree it is about to write. Conflicted paths with textual conflicts that could not be automatically merged are written to this tree with conflict markers, just as in the working tree. AUTO_MERGE can thus be diff --git a/user-manual.txt b/user-manual.txt index d8dbe6b56..5d32ff238 100644 --- a/user-manual.txt +++ b/user-manual.txt @@ -1344,7 +1344,7 @@ $ git diff --theirs file.txt # same as the above. ------------------------------------------------- When using the 'ort' merge strategy (the default), before updating the working -tree with the result of the merge, Git writes a special ref named AUTO_MERGE +tree with the result of the merge, Git writes a ref named AUTO_MERGE reflecting the state of the tree it is about to write. Conflicted paths with textual conflicts that could not be automatically merged are written to this tree with conflict markers, just as in the working tree. AUTO_MERGE can thus be -- cgit 1.2.3-korg