{"thread":{"id":"64512","subject":"[PATCH 0/3] doc: convert fetch pull push to synopsis style","startedAt":"2025-11-19T21:40:09Z","lastAt":"2025-11-24T18:14:45Z","messageCount":9,"participants":["Jean-Noël Avila via GitGitGadget","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":3},"messages":[{"id":"531018","messageId":"pull.2002.git.1763588404.gitgitgadget@gmail.com","threadId":"64512","inReplyTo":null,"subject":"[PATCH 0/3] doc: convert fetch pull push to synopsis style","fromName":"Jean-Noël Avila via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-11-19T21:40:01Z","receivedAt":"2025-11-19T21:40:09Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"This is the continuity of the conversion to the synopsis style with a few\nadditional formatting changes.\n\nJean-Noël Avila (3):\n  doc: convert git fetch to synopsis style\n  doc: convert git pull to synopsis style\n  doc: convert git push to synopsis style\n\n Documentation/config/fetch.adoc     |  60 +++----\n Documentation/config/push.adoc      | 113 ++++++------\n Documentation/fetch-options.adoc    | 211 +++++++++++-----------\n Documentation/git-fetch.adoc        |  48 ++---\n Documentation/git-pull.adoc         |  61 ++++---\n Documentation/git-push.adoc         | 267 +++++++++++++++-------------\n Documentation/merge-options.adoc    |   2 +-\n Documentation/pull-fetch-param.adoc |  52 +++---\n Documentation/urls-remotes.adoc     |  18 +-\n builtin/fetch.c                     |   2 +-\n 10 files changed, 428 insertions(+), 406 deletions(-)\n\n\nbase-commit: fd372d9b1a69a01a676398882bbe3840bf51fe72\nPublished-As: https://github.com/gitgitgadget/git/releases/tag/pr-2002%2Fjnavila%2Fdoc_git_fetch-v1\nFetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2002/jnavila/doc_git_fetch-v1\nPull-Request: https://github.com/gitgitgadget/git/pull/2002\n-- \ngitgitgadget\n"},{"id":"531019","messageId":"5b1e64bdf83e04998225f1716f927bfc9e77dc80.1763588404.git.gitgitgadget@gmail.com","threadId":"64512","inReplyTo":"pull.2002.git.1763588404.gitgitgadget@gmail.com","subject":"[PATCH 2/3] doc: convert git pull to synopsis style","fromName":"Jean-Noël Avila via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-11-19T21:40:03Z","receivedAt":"2025-11-19T21:40:11Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"From: =?UTF-8?q?Jean-No=C3=ABl=20Avila?= <jn.avila@free.fr>\n\n- Switch the synopsis to a synopsis block which will automatically\n  format placeholders in italics and keywords in monospace\n- Use _<placeholder>_ instead of <placeholder> in the description\n- Use `backticks` for keywords and more complex option\ndescriptions. The new rendering engine will apply synopsis rules to\nthese spans.\n\nSigned-off-by: Jean-Noël Avila <jn.avila@free.fr>\n---\n Documentation/fetch-options.adoc | 10 +++---\n Documentation/git-pull.adoc      | 61 ++++++++++++++++----------------\n Documentation/merge-options.adoc |  2 +-\n Documentation/urls-remotes.adoc  |  4 +--\n 4 files changed, 38 insertions(+), 39 deletions(-)\n\ndiff --git a/Documentation/fetch-options.adoc b/Documentation/fetch-options.adoc\nindex 35a84a1ef2..fcba46ee9e 100644\n--- a/Documentation/fetch-options.adoc\n+++ b/Documentation/fetch-options.adoc\n@@ -71,7 +71,7 @@ configuration variables documented in linkgit:git-config[1], and the\n \n `--negotiate-only`::\n \tDo not fetch anything from the server, and instead print the\n-\tancestors of the provided `--negotiation-tip=*` arguments,\n+\tancestors of the provided `--negotiation-tip=` arguments,\n \twhich we have in common with the server.\n +\n This is incompatible with `--recurse-submodules=(yes|on-demand)`.\n@@ -126,7 +126,7 @@ ifndef::git-pull[]\n `--auto-gc`::\n `--no-auto-gc`::\n \tRun `git maintenance run --auto` at the end to perform automatic\n-\trepository maintenance if needed. (`--[no-]auto-gc` is a synonym.)\n+\trepository maintenance if needed.\n \tThis is enabled by default.\n \n `--write-commit-graph`::\n@@ -193,7 +193,7 @@ endif::git-pull[]\n \tspecified refspec (can be given more than once) to map the\n \trefs to remote-tracking branches, instead of the values of\n \t`remote.<name>.fetch` configuration variables for the remote\n-\trepository.  Providing an empty `<refspec>` to the\n+\trepository.  Providing an empty _<refspec>_ to the\n \t`--refmap` option causes Git to ignore the configured\n \trefspecs and rely entirely on the refspecs supplied as\n \tcommand-line arguments. See section on \"Configured Remote-tracking\n@@ -204,7 +204,7 @@ endif::git-pull[]\n \tFetch all tags from the remote (i.e., fetch remote tags\n \t`refs/tags/*` into local tags with the same name), in addition\n \tto whatever else would otherwise be fetched.  Using this\n-\toption alone does not subject tags to pruning, even if --prune\n+\toption alone does not subject tags to pruning, even if `--prune`\n \tis used (though tags may be pruned anyway if they are also the\n \tdestination of an explicit refspec; see `--prune`).\n \n@@ -306,7 +306,7 @@ endif::git-pull[]\n `-o <option>`::\n `--server-option=<option>`::\n \tTransmit the given string to the server when communicating using\n-\tprotocol version 2.  The given string must not contain a NUL or LF\n+\tprotocol version 2.  The given string must not contain a _NUL_ or _LF_\n \tcharacter.  The server's handling of server options, including\n \tunknown ones, is server-specific.\n \tWhen multiple `--server-option=<option>` are given, they are all\ndiff --git a/Documentation/git-pull.adoc b/Documentation/git-pull.adoc\nindex cd3bbc90e3..248f6c3f39 100644\n--- a/Documentation/git-pull.adoc\n+++ b/Documentation/git-pull.adoc\n@@ -8,8 +8,8 @@ git-pull - Fetch from and integrate with another repository or a local branch\n \n SYNOPSIS\n --------\n-[verse]\n-'git pull' [<options>] [<repository> [<refspec>...]]\n+[synopsis]\n+git pull [<options>] [<repository> [<refspec>...]]\n \n \n DESCRIPTION\n@@ -43,7 +43,7 @@ want to handle, you can safely abort it with `git merge --abort` or `git\n OPTIONS\n -------\n \n-<repository>::\n+_<repository>_::\n \tThe \"remote\" repository to pull from.  This can be either\n \ta URL (see the section <<URLS,GIT URLS>> below) or the name\n \tof a remote (see the section <<REMOTES,REMOTES>> below).\n@@ -52,29 +52,29 @@ Defaults to the configured upstream for the current branch, or `origin`.\n See <<UPSTREAM-BRANCHES,UPSTREAM BRANCHES>> below for more on how to\n configure upstreams.\n \n-<refspec>::\n+_<refspec>_::\n \tWhich branch or other reference(s) to fetch and integrate into the\n \tcurrent branch, for example `main` in `git pull origin main`.\n \tDefaults to the configured upstream for the current branch.\n +\n This can be a branch, tag, or other collection of reference(s).\n-See <<fetch-refspec,<refspec>>> below under \"Options related to fetching\"\n+See <<fetch-refspec,_<refspec>_>> below under \"Options related to fetching\"\n for the full syntax, and <<DEFAULT-BEHAVIOUR,DEFAULT BEHAVIOUR>> below\n for how `git pull` uses this argument to determine which remote branch\n to integrate.\n \n--q::\n---quiet::\n+`-q`::\n+`--quiet`::\n \tThis is passed to both underlying git-fetch to squelch reporting of\n \tduring transfer, and underlying git-merge to squelch output during\n \tmerging.\n \n--v::\n---verbose::\n-\tPass --verbose to git-fetch and git-merge.\n+`-v`::\n+`--verbose`::\n+\tPass `--verbose` to git-fetch and git-merge.\n \n---recurse-submodules[=(yes|on-demand|no)]::\n---no-recurse-submodules::\n+`--recurse-submodules[=(yes|on-demand|no)]`::\n+`--no-recurse-submodules`::\n \tThis option controls if new commits of populated submodules should\n \tbe fetched, and if the working trees of active submodules should be\n \tupdated, too (see linkgit:git-fetch[1], linkgit:git-config[1] and\n@@ -91,21 +91,20 @@ Options related to merging\n \n include::merge-options.adoc[]\n \n--r::\n---rebase[=(false|true|merges|interactive)]::\n-\tWhen true, rebase the current branch on top of the upstream\n+`-r`::\n+`--rebase[=(true|merges|false|interactive)]`::\n+`true`;; rebase the current branch on top of the upstream\n \tbranch after fetching. If there is a remote-tracking branch\n \tcorresponding to the upstream branch and the upstream branch\n \twas rebased since last fetched, the rebase uses that information\n-\tto avoid rebasing non-local changes.\n-+\n-When set to `merges`, rebase using `git rebase --rebase-merges` so that\n+\tto avoid rebasing non-local changes. This is the default.\n+\n+`merges`;; rebase using `git rebase --rebase-merges` so that\n the local merge commits are included in the rebase (see\n linkgit:git-rebase[1] for details).\n-+\n-When false, merge the upstream branch into the current branch.\n-+\n-When `interactive`, enable the interactive mode of rebase.\n+`false`;; merge the upstream branch into the current branch.\n+`interactive`;; enable the interactive mode of rebase.\n+\n +\n See `pull.rebase`, `branch.<name>.rebase` and `branch.autoSetupRebase` in\n linkgit:git-config[1] if you want to make `git pull` always use\n@@ -117,8 +116,8 @@ It rewrites history, which does not bode well when you\n published that history already.  Do *not* use this option\n unless you have read linkgit:git-rebase[1] carefully.\n \n---no-rebase::\n-\tThis is shorthand for --rebase=false.\n+`--no-rebase`::\n+\tThis is shorthand for `--rebase=false`.\n \n Options related to fetching\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~\n@@ -178,7 +177,7 @@ uses the refspec from the configuration or\n rules apply:\n \n . If `branch.<name>.merge` configuration for the current\n-  branch `<name>` exists, that is the name of the branch at the\n+  branch _<name>_ exists, that is the name of the branch at the\n   remote site that is merged.\n \n . If the refspec is a globbing one, nothing is merged.\n@@ -198,9 +197,9 @@ $ git pull\n $ git pull origin\n ------------------------------------------------\n +\n-Normally the branch merged in is the HEAD of the remote repository,\n-but the choice is determined by the branch.<name>.remote and\n-branch.<name>.merge options; see linkgit:git-config[1] for details.\n+Normally the branch merged in is the `HEAD` of the remote repository,\n+but the choice is determined by the `branch.<name>.remote` and\n+`branch.<name>.merge` options; see linkgit:git-config[1] for details.\n \n * Merge into the current branch the remote branch `next`:\n +\n@@ -208,7 +207,7 @@ branch.<name>.merge options; see linkgit:git-config[1] for details.\n $ git pull origin next\n ------------------------------------------------\n +\n-This leaves a copy of `next` temporarily in FETCH_HEAD, and\n+This leaves a copy of `next` temporarily in `FETCH_HEAD`, and\n updates the remote-tracking branch `origin/next`.\n The same can be done by invoking fetch and merge:\n +\n@@ -219,14 +218,14 @@ $ git merge origin/next\n \n \n If you tried a pull which resulted in complex conflicts and\n-would want to start over, you can recover with 'git reset'.\n+would want to start over, you can recover with `git reset`.\n \n \n include::transfer-data-leaks.adoc[]\n \n BUGS\n ----\n-Using --recurse-submodules can only fetch new commits in already checked\n+Using `--recurse-submodules` can only fetch new commits in already checked\n out submodules right now. When e.g. upstream added a new submodule in the\n just fetched commits of the superproject the submodule itself cannot be\n fetched, making it impossible to check out that submodule later without\ndiff --git a/Documentation/merge-options.adoc b/Documentation/merge-options.adoc\nindex 9d433265b2..952cb85e9a 100644\n--- a/Documentation/merge-options.adoc\n+++ b/Documentation/merge-options.adoc\n@@ -56,7 +56,7 @@ ifdef::git-pull[]\n `--ff-only`::\n \tOnly update to the new history if there is no divergent local\n \thistory.  This is the default when no method for reconciling\n-\tdivergent histories is provided (via the --rebase=* flags).\n+\tdivergent histories is provided (via the `--rebase` flags).\n \n `--ff`::\n `--no-ff`::\ndiff --git a/Documentation/urls-remotes.adoc b/Documentation/urls-remotes.adoc\nindex 068b3ee4a6..6878bbe093 100644\n--- a/Documentation/urls-remotes.adoc\n+++ b/Documentation/urls-remotes.adoc\n@@ -76,7 +76,7 @@ _<URL>_ is required; `#<head>` is optional.\n \n Depending on the operation, git will use one of the following\n refspecs, if you don't provide one on the command line.\n-_<branch> is the name of this file in `$GIT_DIR/branches` and\n+_<branch>_ is the name of this file in `$GIT_DIR/branches` and\n _<head>_ defaults to `master`.\n \n git fetch uses:\n@@ -111,7 +111,7 @@ Git defaults to using the upstream branch for remote operations, for example:\n   'origin/main' have diverged, and have 2 and 3 different commits each\n   respectively\".\n \n-The upstream is stored in `.git/config`, in the \"remote\" and \"merge\"\n+The upstream is stored in `.git/config`, in the \"`remote`\" and \"`merge`\"\n fields. For example, if `main`'s upstream is `origin/main`:\n \n ------------\n-- \ngitgitgadget\n\n"},{"id":"531020","messageId":"397f56d874ee9b1a2757e0ad44e553e80094c7be.1763588404.git.gitgitgadget@gmail.com","threadId":"64512","inReplyTo":"pull.2002.git.1763588404.gitgitgadget@gmail.com","subject":"[PATCH 1/3] doc: convert git fetch to synopsis style","fromName":"Jean-Noël Avila via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-11-19T21:40:02Z","receivedAt":"2025-11-19T21:40:11Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"From: =?UTF-8?q?Jean-No=C3=ABl=20Avila?= <jn.avila@free.fr>\n\n- Switch the synopsis to a synopsis block which will automatically\n  format placeholders in italics and keywords in monospace\n- Use _<placeholder>_ instead of <placeholder> in the description\n- Use `backticks` for keywords and more complex option\ndescriptions. The new rendering engine will apply synopsis rules to\nthese spans.\n\nSigned-off-by: Jean-Noël Avila <jn.avila@free.fr>\n---\n Documentation/config/fetch.adoc     |  60 ++++-----\n Documentation/fetch-options.adoc    | 201 ++++++++++++++--------------\n Documentation/git-fetch.adoc        |  48 +++----\n Documentation/pull-fetch-param.adoc |  52 +++----\n Documentation/urls-remotes.adoc     |  16 +--\n builtin/fetch.c                     |   2 +-\n 6 files changed, 190 insertions(+), 189 deletions(-)\n\ndiff --git a/Documentation/config/fetch.adoc b/Documentation/config/fetch.adoc\nindex d7dc461bd1..cd40db0cad 100644\n--- a/Documentation/config/fetch.adoc\n+++ b/Documentation/config/fetch.adoc\n@@ -1,32 +1,32 @@\n-fetch.recurseSubmodules::\n+`fetch.recurseSubmodules`::\n \tThis option controls whether `git fetch` (and the underlying fetch\n \tin `git pull`) will recursively fetch into populated submodules.\n-\tThis option can be set either to a boolean value or to 'on-demand'.\n+\tThis option can be set either to a boolean value or to `on-demand`.\n \tSetting it to a boolean changes the behavior of fetch and pull to\n \trecurse unconditionally into submodules when set to true or to not\n-\trecurse at all when set to false. When set to 'on-demand', fetch and\n+\trecurse at all when set to false. When set to `on-demand`, fetch and\n \tpull will only recurse into a populated submodule when its\n \tsuperproject retrieves a commit that updates the submodule's\n \treference.\n-\tDefaults to 'on-demand', or to the value of 'submodule.recurse' if set.\n+\tDefaults to `on-demand`, or to the value of `submodule.recurse` if set.\n \n-fetch.fsckObjects::\n+`fetch.fsckObjects`::\n \tIf it is set to true, git-fetch-pack will check all fetched\n \tobjects. See `transfer.fsckObjects` for what's\n-\tchecked. Defaults to false. If not set, the value of\n+\tchecked. Defaults to `false`. If not set, the value of\n \t`transfer.fsckObjects` is used instead.\n \n-fetch.fsck.<msg-id>::\n+`fetch.fsck.<msg-id>`::\n \tActs like `fsck.<msg-id>`, but is used by\n \tlinkgit:git-fetch-pack[1] instead of linkgit:git-fsck[1]. See\n \tthe `fsck.<msg-id>` documentation for details.\n \n-fetch.fsck.skipList::\n+`fetch.fsck.skipList`::\n \tActs like `fsck.skipList`, but is used by\n \tlinkgit:git-fetch-pack[1] instead of linkgit:git-fsck[1]. See\n \tthe `fsck.skipList` documentation for details.\n \n-fetch.unpackLimit::\n+`fetch.unpackLimit`::\n \tIf the number of objects fetched over the Git native\n \ttransfer is below this\n \tlimit, then the objects will be unpacked into loose object\n@@ -37,12 +37,12 @@ fetch.unpackLimit::\n \tespecially on slow filesystems.  If not set, the value of\n \t`transfer.unpackLimit` is used instead.\n \n-fetch.prune::\n+`fetch.prune`::\n \tIf true, fetch will automatically behave as if the `--prune`\n \toption was given on the command line.  See also `remote.<name>.prune`\n \tand the PRUNING section of linkgit:git-fetch[1].\n \n-fetch.pruneTags::\n+`fetch.pruneTags`::\n \tIf true, fetch will automatically behave as if the\n \t`refs/tags/*:refs/tags/*` refspec was provided when pruning,\n \tif not set already. This allows for setting both this option\n@@ -50,41 +50,41 @@ fetch.pruneTags::\n \trefs. See also `remote.<name>.pruneTags` and the PRUNING\n \tsection of linkgit:git-fetch[1].\n \n-fetch.all::\n+`fetch.all`::\n \tIf true, fetch will attempt to update all available remotes.\n \tThis behavior can be overridden by passing `--no-all` or by\n \texplicitly specifying one or more remote(s) to fetch from.\n-\tDefaults to false.\n+\tDefaults to `false`.\n \n-fetch.output::\n+`fetch.output`::\n \tControl how ref update status is printed. Valid values are\n \t`full` and `compact`. Default value is `full`. See the\n \tOUTPUT section in linkgit:git-fetch[1] for details.\n \n-fetch.negotiationAlgorithm::\n+`fetch.negotiationAlgorithm`::\n \tControl how information about the commits in the local repository\n \tis sent when negotiating the contents of the packfile to be sent by\n-\tthe server.  Set to \"consecutive\" to use an algorithm that walks\n-\tover consecutive commits checking each one.  Set to \"skipping\" to\n+\tthe server.  Set to `consecutive` to use an algorithm that walks\n+\tover consecutive commits checking each one.  Set to `skipping` to\n \tuse an algorithm that skips commits in an effort to converge\n \tfaster, but may result in a larger-than-necessary packfile; or set\n-\tto \"noop\" to not send any information at all, which will almost\n+\tto `noop` to not send any information at all, which will almost\n \tcertainly result in a larger-than-necessary packfile, but will skip\n-\tthe negotiation step.  Set to \"default\" to override settings made\n+\tthe negotiation step.  Set to `default` to override settings made\n \tpreviously and use the default behaviour.  The default is normally\n-\t\"consecutive\", but if `feature.experimental` is true, then the\n-\tdefault is \"skipping\".  Unknown values will cause 'git fetch' to\n+\t`consecutive`, but if `feature.experimental` is `true`, then the\n+\tdefault is `skipping`.  Unknown values will cause `git fetch` to\n \terror out.\n +\n See also the `--negotiate-only` and `--negotiation-tip` options to\n linkgit:git-fetch[1].\n \n-fetch.showForcedUpdates::\n-\tSet to false to enable `--no-show-forced-updates` in\n+`fetch.showForcedUpdates`::\n+\tSet to `false` to enable `--no-show-forced-updates` in\n \tlinkgit:git-fetch[1] and linkgit:git-pull[1] commands.\n-\tDefaults to true.\n+\tDefaults to `true`.\n \n-fetch.parallel::\n+`fetch.parallel`::\n \tSpecifies the maximal number of fetch operations to be run in parallel\n \tat a time (submodules, or remotes when the `--multiple` option of\n \tlinkgit:git-fetch[1] is in effect).\n@@ -94,16 +94,16 @@ A value of 0 will give some reasonable default. If unset, it defaults to 1.\n For submodules, this setting can be overridden using the `submodule.fetchJobs`\n config setting.\n \n-fetch.writeCommitGraph::\n+`fetch.writeCommitGraph`::\n \tSet to true to write a commit-graph after every `git fetch` command\n \tthat downloads a pack-file from a remote. Using the `--split` option,\n \tmost executions will create a very small commit-graph file on top of\n \tthe existing commit-graph file(s). Occasionally, these files will\n \tmerge and the write may take longer. Having an updated commit-graph\n \tfile helps performance of many Git commands, including `git merge-base`,\n-\t`git push -f`, and `git log --graph`. Defaults to false.\n+\t`git push -f`, and `git log --graph`. Defaults to `false`.\n \n-fetch.bundleURI::\n+`fetch.bundleURI`::\n \tThis value stores a URI for downloading Git object data from a bundle\n \tURI before performing an incremental fetch from the origin Git server.\n \tThis is similar to how the `--bundle-uri` option behaves in\n@@ -115,9 +115,9 @@ If you modify this value and your repository has a `fetch.bundleCreationToken`\n value, then remove that `fetch.bundleCreationToken` value before fetching from\n the new bundle URI.\n \n-fetch.bundleCreationToken::\n+`fetch.bundleCreationToken`::\n \tWhen using `fetch.bundleURI` to fetch incrementally from a bundle\n-\tlist that uses the \"creationToken\" heuristic, this config value\n+\tlist that uses the \"`creationToken`\" heuristic, this config value\n \tstores the maximum `creationToken` value of the downloaded bundles.\n \tThis value is used to prevent downloading bundles in the future\n \tif the advertised `creationToken` is not strictly larger than this\ndiff --git a/Documentation/fetch-options.adoc b/Documentation/fetch-options.adoc\nindex ad1e1f49be..35a84a1ef2 100644\n--- a/Documentation/fetch-options.adoc\n+++ b/Documentation/fetch-options.adoc\n@@ -1,41 +1,41 @@\n---all::\n---no-all::\n+`--all`::\n+`--no-all`::\n \tFetch all remotes, except for the ones that has the\n \t`remote.<name>.skipFetchAll` configuration variable set.\n \tThis overrides the configuration variable `fetch.all`.\n \n--a::\n---append::\n+`-a`::\n+`--append`::\n \tAppend ref names and object names of fetched refs to the\n \texisting contents of `.git/FETCH_HEAD`.  Without this\n \toption old data in `.git/FETCH_HEAD` will be overwritten.\n \n---atomic::\n+`--atomic`::\n \tUse an atomic transaction to update local refs. Either all refs are\n \tupdated, or on error, no refs are updated.\n \n---depth=<depth>::\n+`--depth=<depth>`::\n \tLimit fetching to the specified number of commits from the tip of\n \teach remote branch history. If fetching to a 'shallow' repository\n \tcreated by `git clone` with `--depth=<depth>` option (see\n \tlinkgit:git-clone[1]), deepen or shorten the history to the specified\n \tnumber of commits. Tags for the deepened commits are not fetched.\n \n---deepen=<depth>::\n-\tSimilar to --depth, except it specifies the number of commits\n+`--deepen=<depth>`::\n+\tSimilar to `--depth`, except it specifies the number of commits\n \tfrom the current shallow boundary instead of from the tip of\n \teach remote branch history.\n \n---shallow-since=<date>::\n+`--shallow-since=<date>`::\n \tDeepen or shorten the history of a shallow repository to\n-\tinclude all reachable commits after <date>.\n+\tinclude all reachable commits after _<date>_.\n \n---shallow-exclude=<ref>::\n+`--shallow-exclude=<ref>`::\n \tDeepen or shorten the history of a shallow repository to\n \texclude commits reachable from a specified remote branch or tag.\n \tThis option can be specified multiple times.\n \n---unshallow::\n+`--unshallow`::\n \tIf the source repository is complete, convert a shallow\n \trepository to a complete one, removing all the limitations\n \timposed by shallow repositories.\n@@ -43,13 +43,13 @@\n If the source repository is shallow, fetch as much as possible so that\n the current repository has the same history as the source repository.\n \n---update-shallow::\n+`--update-shallow`::\n \tBy default when fetching from a shallow repository,\n \t`git fetch` refuses refs that require updating\n-\t.git/shallow. This option updates .git/shallow and accepts such\n+\t`.git/shallow`. This option updates `.git/shallow` and accepts such\n \trefs.\n \n---negotiation-tip=<commit|glob>::\n+`--negotiation-tip=(<commit>|<glob>)`::\n \tBy default, Git will report, to the server, commits reachable\n \tfrom all local refs to find common commits in an attempt to\n \treduce the size of the to-be-received packfile. If specified,\n@@ -69,28 +69,28 @@ See also the `fetch.negotiationAlgorithm` and `push.negotiate`\n configuration variables documented in linkgit:git-config[1], and the\n `--negotiate-only` option below.\n \n---negotiate-only::\n+`--negotiate-only`::\n \tDo not fetch anything from the server, and instead print the\n \tancestors of the provided `--negotiation-tip=*` arguments,\n \twhich we have in common with the server.\n +\n-This is incompatible with `--recurse-submodules=[yes|on-demand]`.\n+This is incompatible with `--recurse-submodules=(yes|on-demand)`.\n Internally this is used to implement the `push.negotiate` option, see\n linkgit:git-config[1].\n \n---dry-run::\n+`--dry-run`::\n \tShow what would be done, without making any changes.\n \n---porcelain::\n+`--porcelain`::\n \tPrint the output to standard output in an easy-to-parse format for\n \tscripts. See section OUTPUT in linkgit:git-fetch[1] for details.\n +\n-This is incompatible with `--recurse-submodules=[yes|on-demand]` and takes\n+This is incompatible with `--recurse-submodules=(yes|on-demand)` and takes\n precedence over the `fetch.output` config option.\n \n ifndef::git-pull[]\n---write-fetch-head::\n---no-write-fetch-head::\n+`--write-fetch-head`::\n+`--no-write-fetch-head`::\n \tWrite the list of remote refs fetched in the `FETCH_HEAD`\n \tfile directly under `$GIT_DIR`.  This is the default.\n \tPassing `--no-write-fetch-head` from the command line tells\n@@ -98,64 +98,65 @@ ifndef::git-pull[]\n \tfile is never written.\n endif::git-pull[]\n \n--f::\n---force::\n-\tWhen 'git fetch' is used with `<src>:<dst>` refspec, it may\n-\trefuse to update the local branch as discussed\n+`-f`::\n+`--force`::\n ifdef::git-pull[]\n-\tin the `<refspec>` part of the linkgit:git-fetch[1]\n-\tdocumentation.\n+When `git fetch` is used with `<src>:<dst>` refspec, it may\n+refuse to update the local branch as discussed\n+in the _<refspec>_ part of the linkgit:git-fetch[1]\n+documentation.\n endif::git-pull[]\n ifndef::git-pull[]\n-\tin the `<refspec>` part below.\n+When `git fetch` is used with `<src>:<dst>` refspec, it may\n+refuse to update the local branch as discussed in the _<refspec>_ part below.\n endif::git-pull[]\n-\tThis option overrides that check.\n+This option overrides that check.\n \n--k::\n---keep::\n+`-k`::\n+`--keep`::\n \tKeep downloaded pack.\n \n ifndef::git-pull[]\n---multiple::\n-\tAllow several <repository> and <group> arguments to be\n-\tspecified. No <refspec>s may be specified.\n-\n---auto-maintenance::\n---no-auto-maintenance::\n---auto-gc::\n---no-auto-gc::\n+`--multiple`::\n+\tAllow several _<repository>_ and _<group>_ arguments to be\n+\tspecified. No __<refspec>__s may be specified.\n+\n+`--auto-maintenance`::\n+`--no-auto-maintenance`::\n+`--auto-gc`::\n+`--no-auto-gc`::\n \tRun `git maintenance run --auto` at the end to perform automatic\n \trepository maintenance if needed. (`--[no-]auto-gc` is a synonym.)\n \tThis is enabled by default.\n \n---write-commit-graph::\n---no-write-commit-graph::\n+`--write-commit-graph`::\n+`--no-write-commit-graph`::\n \tWrite a commit-graph after fetching. This overrides the config\n \tsetting `fetch.writeCommitGraph`.\n endif::git-pull[]\n \n---prefetch::\n+`--prefetch`::\n \tModify the configured refspec to place all refs into the\n \t`refs/prefetch/` namespace. See the `prefetch` task in\n \tlinkgit:git-maintenance[1].\n \n--p::\n---prune::\n+`-p`::\n+`--prune`::\n \tBefore fetching, remove any remote-tracking references that no\n \tlonger exist on the remote.  Tags are not subject to pruning\n \tif they are fetched only because of the default tag\n-\tauto-following or due to a --tags option.  However, if tags\n+\tauto-following or due to a `--tags` option.  However, if tags\n \tare fetched due to an explicit refspec (either on the command\n \tline or in the remote configuration, for example if the remote\n-\twas cloned with the --mirror option), then they are also\n+\twas cloned with the `--mirror` option), then they are also\n \tsubject to pruning. Supplying `--prune-tags` is a shorthand for\n \tproviding the tag refspec.\n ifndef::git-pull[]\n +\n See the PRUNING section below for more details.\n \n--P::\n---prune-tags::\n+`-P`::\n+`--prune-tags`::\n \tBefore fetching, remove any local tags that no longer exist on\n \tthe remote if `--prune` is enabled. This option should be used\n \tmore carefully, unlike `--prune` it will remove any local\n@@ -168,17 +169,17 @@ See the PRUNING section below for more details.\n endif::git-pull[]\n \n ifndef::git-pull[]\n--n::\n+`-n`::\n endif::git-pull[]\n---no-tags::\n+`--no-tags`::\n \tBy default, tags that point at objects that are downloaded\n \tfrom the remote repository are fetched and stored locally.\n \tThis option disables this automatic tag following. The default\n-\tbehavior for a remote may be specified with the remote.<name>.tagOpt\n+\tbehavior for a remote may be specified with the `remote.<name>.tagOpt`\n \tsetting. See linkgit:git-config[1].\n \n ifndef::git-pull[]\n---refetch::\n+`--refetch`::\n \tInstead of negotiating with the server to avoid transferring commits and\n \tassociated objects that are already present locally, this option fetches\n \tall objects as a fresh clone would. Use this to reapply a partial clone\n@@ -187,19 +188,19 @@ ifndef::git-pull[]\n \tobject database pack consolidation to remove any duplicate objects.\n endif::git-pull[]\n \n---refmap=<refspec>::\n+`--refmap=<refspec>`::\n \tWhen fetching refs listed on the command line, use the\n \tspecified refspec (can be given more than once) to map the\n \trefs to remote-tracking branches, instead of the values of\n-\t`remote.*.fetch` configuration variables for the remote\n+\t`remote.<name>.fetch` configuration variables for the remote\n \trepository.  Providing an empty `<refspec>` to the\n \t`--refmap` option causes Git to ignore the configured\n \trefspecs and rely entirely on the refspecs supplied as\n \tcommand-line arguments. See section on \"Configured Remote-tracking\n \tBranches\" for details.\n \n--t::\n---tags::\n+`-t`::\n+`--tags`::\n \tFetch all tags from the remote (i.e., fetch remote tags\n \t`refs/tags/*` into local tags with the same name), in addition\n \tto whatever else would otherwise be fetched.  Using this\n@@ -208,8 +209,8 @@ endif::git-pull[]\n \tdestination of an explicit refspec; see `--prune`).\n \n ifndef::git-pull[]\n---recurse-submodules[=(yes|on-demand|no)]::\n-\tThis option controls if and under what conditions new commits of\n+`--recurse-submodules[=(yes|on-demand|no)]`::\n+\tControl if and under what conditions new commits of\n \tsubmodules should be fetched too. When recursing through submodules,\n \t`git fetch` always attempts to fetch \"changed\" submodules, that is, a\n \tsubmodule that has commits that are referenced by a newly fetched\n@@ -219,19 +220,19 @@ ifndef::git-pull[]\n \tadds a new submodule, that submodule cannot be fetched until it is\n \tcloned e.g. by `git submodule update`.\n +\n-When set to 'on-demand', only changed submodules are fetched. When set\n-to 'yes', all populated submodules are fetched and submodules that are\n-both unpopulated and changed are fetched. When set to 'no', submodules\n+When set to `on-demand`, only changed submodules are fetched. When set\n+to `yes`, all populated submodules are fetched and submodules that are\n+both unpopulated and changed are fetched. When set to `no`, submodules\n are never fetched.\n +\n When unspecified, this uses the value of `fetch.recurseSubmodules` if it\n-is set (see linkgit:git-config[1]), defaulting to 'on-demand' if unset.\n-When this option is used without any value, it defaults to 'yes'.\n+is set (see linkgit:git-config[1]), defaulting to `on-demand` if unset.\n+When this option is used without any value, it defaults to `yes`.\n endif::git-pull[]\n \n--j::\n---jobs=<n>::\n-\tNumber of parallel children to be used for all forms of fetching.\n+`-j <n>`::\n+`--jobs=<n>`::\n+\tParallelize all forms of fetching up to _<n>_ jobs at a time.\n +\n If the `--multiple` option was specified, the different remotes will be fetched\n in parallel. If multiple submodules are fetched, they will be fetched in\n@@ -242,12 +243,12 @@ Typically, parallel recursive and multi-remote fetches will be faster. By\n default fetches are performed sequentially, not in parallel.\n \n ifndef::git-pull[]\n---no-recurse-submodules::\n+`--no-recurse-submodules`::\n \tDisable recursive fetching of submodules (this has the same effect as\n \tusing the `--recurse-submodules=no` option).\n endif::git-pull[]\n \n---set-upstream::\n+`--set-upstream`::\n \tIf the remote is fetched successfully, add upstream\n \t(tracking) reference, used by argument-less\n \tlinkgit:git-pull[1] and other commands. For more information,\n@@ -255,55 +256,55 @@ endif::git-pull[]\n \tlinkgit:git-config[1].\n \n ifndef::git-pull[]\n---submodule-prefix=<path>::\n-\tPrepend <path> to paths printed in informative messages\n+`--submodule-prefix=<path>`::\n+\tPrepend _<path>_ to paths printed in informative messages\n \tsuch as \"Fetching submodule foo\".  This option is used\n \tinternally when recursing over submodules.\n \n---recurse-submodules-default=[yes|on-demand]::\n+`--recurse-submodules-default=(yes|on-demand)`::\n \tThis option is used internally to temporarily provide a\n-\tnon-negative default value for the --recurse-submodules\n+\tnon-negative default value for the `--recurse-submodules`\n \toption.  All other methods of configuring fetch's submodule\n \trecursion (such as settings in linkgit:gitmodules[5] and\n \tlinkgit:git-config[1]) override this option, as does\n-\tspecifying --[no-]recurse-submodules directly.\n+\tspecifying `--[no-]recurse-submodules` directly.\n \n--u::\n---update-head-ok::\n-\tBy default 'git fetch' refuses to update the head which\n+`-u`::\n+`--update-head-ok`::\n+\tBy default `git fetch` refuses to update the head which\n \tcorresponds to the current branch.  This flag disables the\n-\tcheck.  This is purely for the internal use for 'git pull'\n-\tto communicate with 'git fetch', and unless you are\n+\tcheck.  This is purely for the internal use for `git pull`\n+\tto communicate with `git fetch`, and unless you are\n \timplementing your own Porcelain you are not supposed to\n \tuse it.\n endif::git-pull[]\n \n---upload-pack <upload-pack>::\n+`--upload-pack <upload-pack>`::\n \tWhen given, and the repository to fetch from is handled\n-\tby 'git fetch-pack', `--exec=<upload-pack>` is passed to\n+\tby `git fetch-pack`, `--exec=<upload-pack>` is passed to\n \tthe command to specify non-default path for the command\n \trun on the other end.\n \n ifndef::git-pull[]\n--q::\n---quiet::\n-\tPass --quiet to git-fetch-pack and silence any other internally\n+`-q`::\n+`--quiet`::\n+\tPass `--quiet` to `git-fetch-pack` and silence any other internally\n \tused git commands. Progress is not reported to the standard error\n \tstream.\n \n--v::\n---verbose::\n+`-v`::\n+`--verbose`::\n \tBe verbose.\n endif::git-pull[]\n \n---progress::\n+`--progress`::\n \tProgress status is reported on the standard error stream\n-\tby default when it is attached to a terminal, unless -q\n+\tby default when it is attached to a terminal, unless `-q`\n \tis specified. This flag forces progress status even if the\n \tstandard error stream is not directed to a terminal.\n \n--o <option>::\n---server-option=<option>::\n+`-o <option>`::\n+`--server-option=<option>`::\n \tTransmit the given string to the server when communicating using\n \tprotocol version 2.  The given string must not contain a NUL or LF\n \tcharacter.  The server's handling of server options, including\n@@ -314,23 +315,23 @@ endif::git-pull[]\n \tthe values of configuration variable `remote.<name>.serverOption`\n \tare used instead.\n \n---show-forced-updates::\n+`--show-forced-updates`::\n \tBy default, git checks if a branch is force-updated during\n-\tfetch. This can be disabled through fetch.showForcedUpdates, but\n-\tthe --show-forced-updates option guarantees this check occurs.\n+\tfetch. This can be disabled through `fetch.showForcedUpdates`, but\n+\tthe `--show-forced-updates` option guarantees this check occurs.\n \tSee linkgit:git-config[1].\n \n---no-show-forced-updates::\n+`--no-show-forced-updates`::\n \tBy default, git checks if a branch is force-updated during\n-\tfetch. Pass --no-show-forced-updates or set fetch.showForcedUpdates\n+\tfetch. Pass `--no-show-forced-updates` or set `fetch.showForcedUpdates`\n \tto false to skip this check for performance reasons. If used during\n-\t'git-pull' the --ff-only option will still check for forced updates\n+\t`git-pull` the `--ff-only` option will still check for forced updates\n \tbefore attempting a fast-forward update. See linkgit:git-config[1].\n \n--4::\n---ipv4::\n+`-4`::\n+`--ipv4`::\n \tUse IPv4 addresses only, ignoring IPv6 addresses.\n \n--6::\n---ipv6::\n+`-6`::\n+`--ipv6`::\n \tUse IPv6 addresses only, ignoring IPv4 addresses.\ndiff --git a/Documentation/git-fetch.adoc b/Documentation/git-fetch.adoc\nindex 16f5d9d69a..db03541915 100644\n--- a/Documentation/git-fetch.adoc\n+++ b/Documentation/git-fetch.adoc\n@@ -8,11 +8,11 @@ git-fetch - Download objects and refs from another repository\n \n SYNOPSIS\n --------\n-[verse]\n-'git fetch' [<options>] [<repository> [<refspec>...]]\n-'git fetch' [<options>] <group>\n-'git fetch' --multiple [<options>] [(<repository> | <group>)...]\n-'git fetch' --all [<options>]\n+[synopsis]\n+git fetch [<options>] [<repository> [<refspec>...]]\n+git fetch [<options>] <group>\n+git fetch --multiple [<options>] [(<repository>|<group>)...]\n+git fetch --all [<options>]\n \n \n DESCRIPTION\n@@ -20,19 +20,19 @@ DESCRIPTION\n Fetch branches and/or tags (collectively, \"refs\") from one or more\n other repositories, along with the objects necessary to complete their\n histories.  Remote-tracking branches are updated (see the description\n-of <refspec> below for ways to control this behavior).\n+of _<refspec>_ below for ways to control this behavior).\n \n By default, any tag that points into the histories being fetched is\n also fetched; the effect is to fetch tags that\n point at branches that you are interested in.  This default behavior\n-can be changed by using the --tags or --no-tags options or by\n-configuring remote.<name>.tagOpt.  By using a refspec that fetches tags\n+can be changed by using the `--tags` or `--no-tags` options or by\n+configuring `remote.<name>.tagOpt`.  By using a refspec that fetches tags\n explicitly, you can fetch tags that do not point into branches you\n are interested in as well.\n \n-'git fetch' can fetch from either a single named repository or URL,\n-or from several repositories at once if <group> is given and\n-there is a remotes.<group> entry in the configuration file.\n+`git fetch` can fetch from either a single named repository or URL,\n+or from several repositories at once if _<group>_ is given and\n+there is a `remotes.<group>` entry in the configuration file.\n (See linkgit:git-config[1]).\n \n When no remote is specified, by default the `origin` remote will be used,\n@@ -48,15 +48,15 @@ include::fetch-options.adoc[]\n \n include::pull-fetch-param.adoc[]\n \n---stdin::\n+`--stdin`::\n \tRead refspecs, one per line, from stdin in addition to those provided\n-\tas arguments. The \"tag <name>\" format is not supported.\n+\tas arguments. The \"tag _<name>_\" format is not supported.\n \n include::urls-remotes.adoc[]\n \n-\n-CONFIGURED REMOTE-TRACKING BRANCHES[[CRTB]]\n--------------------------------------------\n+[[CRTB]]\n+CONFIGURED REMOTE-TRACKING BRANCHES\n+-----------------------------------\n \n You often interact with the same remote repository by\n regularly and repeatedly fetching from it.  In order to keep track\n@@ -84,13 +84,13 @@ This configuration is used in two ways:\n \n * When `git fetch` is run with explicit branches and/or tags\n   to fetch on the command line, e.g. `git fetch origin master`, the\n-  <refspec>s given on the command line determine what are to be\n+  _<refspec>s_ given on the command line determine what are to be\n   fetched (e.g. `master` in the example,\n   which is a short-hand for `master:`, which in turn means\n-  \"fetch the 'master' branch but I do not explicitly say what\n+  \"fetch the `master` branch but I do not explicitly say what\n   remote-tracking branch to update with it from the command line\"),\n   and the example command will\n-  fetch _only_ the 'master' branch.  The `remote.<repository>.fetch`\n+  fetch _only_ the `master` branch.  The `remote.<repository>.fetch`\n   values determine which\n   remote-tracking branch, if any, is updated.  When used in this\n   way, the `remote.<repository>.fetch` values do not have any\n@@ -144,9 +144,9 @@ tracking branches that are deleted, but any local tag that doesn't\n exist on the remote.\n \n This might not be what you expect, i.e. you want to prune remote\n-`<name>`, but also explicitly fetch tags from it, so when you fetch\n+_<name>_, but also explicitly fetch tags from it, so when you fetch\n from it you delete all your local tags, most of which may not have\n-come from the `<name>` remote in the first place.\n+come from the _<name>_ remote in the first place.\n \n So be careful when using this with a refspec like\n `refs/tags/*:refs/tags/*`, or any other refspec which might map\n@@ -213,11 +213,11 @@ of the form:\n <flag> <old-object-id> <new-object-id> <local-reference>\n -------------------------------\n \n-The status of up-to-date refs is shown only if the --verbose option is\n+The status of up-to-date refs is shown only if the `--verbose` option is\n used.\n \n In compact output mode, specified with configuration variable\n-fetch.output, if either entire `<from>` or `<to>` is found in the\n+fetch.output, if either entire _<from>_ or _<to>_ is found in the\n other string, it will be substituted with `*` in the other string. For\n example, `master -> origin/master` becomes `master -> origin/*`.\n \n@@ -303,7 +303,7 @@ include::config/fetch.adoc[]\n \n BUGS\n ----\n-Using --recurse-submodules can only fetch new commits in submodules that are\n+Using `--recurse-submodules` can only fetch new commits in submodules that are\n present locally e.g. in `$GIT_DIR/modules/`. If the upstream adds a new\n submodule, that submodule cannot be fetched until it is cloned e.g. by `git\n submodule update`. This is expected to be fixed in a future Git version.\ndiff --git a/Documentation/pull-fetch-param.adoc b/Documentation/pull-fetch-param.adoc\nindex bb2cf6a462..2a67641761 100644\n--- a/Documentation/pull-fetch-param.adoc\n+++ b/Documentation/pull-fetch-param.adoc\n@@ -1,20 +1,20 @@\n-<repository>::\n+_<repository>_::\n \tThe \"remote\" repository that is the source of a fetch\n \tor pull operation.  This parameter can be either a URL\n \t(see the section <<URLS,GIT URLS>> below) or the name\n \tof a remote (see the section <<REMOTES,REMOTES>> below).\n \n ifndef::git-pull[]\n-<group>::\n+_<group>_::\n \tA name referring to a list of repositories as the value\n-\tof remotes.<group> in the configuration file.\n+\tof `remotes.<group>` in the configuration file.\n \t(See linkgit:git-config[1]).\n endif::git-pull[]\n \n [[fetch-refspec]]\n-<refspec>::\n+_<refspec>_::\n \tSpecifies which refs to fetch and which local refs to update.\n-\tWhen no <refspec>s appear on the command line, the refs to fetch\n+\tWhen no __<refspec>__s appear on the command line, the refs to fetch\n \tare read from `remote.<repository>.fetch` variables instead\n ifndef::git-pull[]\n \t(see <<CRTB,CONFIGURED REMOTE-TRACKING BRANCHES>> below).\n@@ -24,18 +24,18 @@ ifdef::git-pull[]\n \tin linkgit:git-fetch[1]).\n endif::git-pull[]\n +\n-The format of a <refspec> parameter is an optional plus\n-`+`, followed by the source <src>, followed\n-by a colon `:`, followed by the destination <dst>.\n-The colon can be omitted when <dst> is empty.  <src> is\n+The format of a _<refspec>_ parameter is an optional plus\n+`+`, followed by the source _<src>_, followed\n+by a colon `:`, followed by the destination _<dst>_.\n+The colon can be omitted when _<dst>_ is empty.  _<src>_ is\n typically a ref, or a glob pattern with a single `*` that is used\n to match a set of refs, but it can also be a fully spelled hex object\n name.\n +\n-A <refspec> may contain a `*` in its <src> to indicate a simple pattern\n+A _<refspec>_ may contain a `*` in its _<src>_ to indicate a simple pattern\n match. Such a refspec functions like a glob that matches any ref with the\n-pattern. A pattern <refspec> must have one and only one `*` in both the <src> and\n-<dst>. It will map refs to the destination by replacing the `*` with the\n+pattern. A pattern _<refspec>_ must have one and only one `*` in both the _<src>_ and\n+_<dst>_. It will map refs to the destination by replacing the `*` with the\n contents matched from the source.\n +\n If a refspec is prefixed by `^`, it will be interpreted as a negative\n@@ -45,14 +45,14 @@ considered to match if it matches at least one positive refspec, and does\n not match any negative refspec. Negative refspecs can be useful to restrict\n the scope of a pattern refspec so that it will not include specific refs.\n Negative refspecs can themselves be pattern refspecs. However, they may only\n-contain a <src> and do not specify a <dst>. Fully spelled out hex object\n+contain a _<src>_ and do not specify a _<dst>_. Fully spelled out hex object\n names are also not supported.\n +\n `tag <tag>` means the same as `refs/tags/<tag>:refs/tags/<tag>`;\n it requests fetching everything up to the given tag.\n +\n-The remote ref that matches <src>\n-is fetched, and if <dst> is not an empty string, an attempt\n+The remote ref that matches _<src>_\n+is fetched, and if _<dst>_ is not an empty string, an attempt\n is made to update the local ref that matches it.\n +\n Whether that update is allowed without `--force` depends on the ref\n@@ -60,7 +60,7 @@ namespace it's being fetched to, the type of object being fetched, and\n whether the update is considered to be a fast-forward. Generally, the\n same rules apply for fetching as when pushing, see the `<refspec>...`\n section of linkgit:git-push[1] for what those are. Exceptions to those\n-rules particular to 'git fetch' are noted below.\n+rules particular to `git fetch` are noted below.\n +\n Until Git version 2.20, and unlike when pushing with\n linkgit:git-push[1], any updates to `refs/tags/*` would be accepted\n@@ -91,7 +91,7 @@ object.\n When the remote branch you want to fetch is known to\n be rewound and rebased regularly, it is expected that\n its new tip will not be a descendant of its previous tip\n-(as stored in your remote-tracking branch the last time\n+(as stored in your remote-tracking branch the last time_\n you fetched).  You would want\n to use the `+` sign to indicate non-fast-forward updates\n will be needed for such branches.  There is no way to\n@@ -101,19 +101,19 @@ must know this is the expected usage pattern for a branch.\n ifdef::git-pull[]\n +\n [NOTE]\n-There is a difference between listing multiple <refspec>\n-directly on 'git pull' command line and having multiple\n+There is a difference between listing multiple _<refspec>_\n+directly on `git pull` command line and having multiple\n `remote.<repository>.fetch` entries in your configuration\n-for a <repository> and running a\n-'git pull' command without any explicit <refspec> parameters.\n-<refspec>s listed explicitly on the command line are always\n+for a _<repository>_ and running a\n+`git pull` command without any explicit _<refspec>_ parameters.\n+__<refspec>__s listed explicitly on the command line are always\n merged into the current branch after fetching.  In other words,\n-if you list more than one remote ref, 'git pull' will create\n+if you list more than one remote ref, `git pull` will create\n an Octopus merge.  On the other hand, if you do not list any\n-explicit <refspec> parameter on the command line, 'git pull'\n-will fetch all the <refspec>s it finds in the\n+explicit _<refspec>_ parameter on the command line, `git pull`\n+will fetch all the __<refspec>__s it finds in the\n `remote.<repository>.fetch` configuration and merge\n-only the first <refspec> found into the current branch.\n+only the first _<refspec>_ found into the current branch.\n This is because making an\n Octopus from remote refs is rarely done, while keeping track\n of multiple remote heads in one-go by fetching more than one\ndiff --git a/Documentation/urls-remotes.adoc b/Documentation/urls-remotes.adoc\nindex 57b1646d3e..068b3ee4a6 100644\n--- a/Documentation/urls-remotes.adoc\n+++ b/Documentation/urls-remotes.adoc\n@@ -4,7 +4,7 @@ REMOTES[[REMOTES]]\n ------------------\n \n The name of one of the following can be used instead\n-of a URL as `<repository>` argument:\n+of a URL as _<repository>_ argument:\n \n * a remote in the Git configuration file: `$GIT_DIR/config`,\n * a file in the `$GIT_DIR/remotes` directory, or\n@@ -32,8 +32,8 @@ config file would appear like this:\n \t\tfetch = <refspec>\n ------------\n \n-The `<pushurl>` is used for pushes only. It is optional and defaults\n-to `<URL>`. Pushing to a remote affects all defined pushurls or all\n+The _<pushurl>_ is used for pushes only. It is optional and defaults\n+to _<URL>_. Pushing to a remote affects all defined pushurls or all\n defined urls if no pushurls are defined. Fetch, however, will only\n fetch from the first defined url if multiple urls are defined.\n \n@@ -54,8 +54,8 @@ following format:\n \n ------------\n \n-`Push:` lines are used by 'git push' and\n-`Pull:` lines are used by 'git pull' and 'git fetch'.\n+`Push:` lines are used by `git push` and\n+`Pull:` lines are used by `git pull` and `git fetch`.\n Multiple `Push:` and `Pull:` lines may\n be specified for additional branch mappings.\n \n@@ -72,12 +72,12 @@ This file should have the following format:\n \t<URL>#<head>\n ------------\n \n-`<URL>` is required; `#<head>` is optional.\n+_<URL>_ is required; `#<head>` is optional.\n \n Depending on the operation, git will use one of the following\n refspecs, if you don't provide one on the command line.\n-`<branch>` is the name of this file in `$GIT_DIR/branches` and\n-`<head>` defaults to `master`.\n+_<branch> is the name of this file in `$GIT_DIR/branches` and\n+_<head>_ defaults to `master`.\n \n git fetch uses:\n \ndiff --git a/builtin/fetch.c b/builtin/fetch.c\nindex c7ff3480fb..74b62b1315 100644\n--- a/builtin/fetch.c\n+++ b/builtin/fetch.c\n@@ -47,7 +47,7 @@\n static const char * const builtin_fetch_usage[] = {\n \tN_(\"git fetch [<options>] [<repository> [<refspec>...]]\"),\n \tN_(\"git fetch [<options>] <group>\"),\n-\tN_(\"git fetch --multiple [<options>] [(<repository> | <group>)...]\"),\n+\tN_(\"git fetch --multiple [<options>] [(<repository>|<group>)...]\"),\n \tN_(\"git fetch --all [<options>]\"),\n \tNULL\n };\n-- \ngitgitgadget\n\n"},{"id":"531021","messageId":"e5526eaf58ce37507a3e9a9265476720399ad42e.1763588404.git.gitgitgadget@gmail.com","threadId":"64512","inReplyTo":"pull.2002.git.1763588404.gitgitgadget@gmail.com","subject":"[PATCH 3/3] doc: convert git push to synopsis style","fromName":"Jean-Noël Avila via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-11-19T21:40:04Z","receivedAt":"2025-11-19T21:40:13Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"From: =?UTF-8?q?Jean-No=C3=ABl=20Avila?= <jn.avila@free.fr>\n\n- Switch the synopsis to a synopsis block which will automatically\n  format placeholders in italics and keywords in monospace\n- Use _<placeholder>_ instead of <placeholder> in the description\n- Use `backticks` for keywords and more complex option\ndescriptions. The new rendering engine will apply synopsis rules to\nthese spans.\n\nSigned-off-by: Jean-Noël Avila <jn.avila@free.fr>\n---\n Documentation/config/push.adoc | 113 +++++++-------\n Documentation/git-push.adoc    | 267 ++++++++++++++++++---------------\n 2 files changed, 201 insertions(+), 179 deletions(-)\n\ndiff --git a/Documentation/config/push.adoc b/Documentation/config/push.adoc\nindex 0acbbea18a..d9112b2260 100644\n--- a/Documentation/config/push.adoc\n+++ b/Documentation/config/push.adoc\n@@ -1,15 +1,15 @@\n-push.autoSetupRemote::\n-\tIf set to \"true\" assume `--set-upstream` on default push when no\n+`push.autoSetupRemote`::\n+\tIf set to `true` assume `--set-upstream` on default push when no\n \tupstream tracking exists for the current branch; this option\n-\ttakes effect with push.default options 'simple', 'upstream',\n-\tand 'current'. It is useful if by default you want new branches\n+\ttakes effect with `push.default` options `simple`, `upstream`,\n+\tand `current`. It is useful if by default you want new branches\n \tto be pushed to the default remote (like the behavior of\n-\t'push.default=current') and you also want the upstream tracking\n+\t`push.default=current`) and you also want the upstream tracking\n \tto be set. Workflows most likely to benefit from this option are\n-\t'simple' central workflows where all branches are expected to\n+\t`simple` central workflows where all branches are expected to\n \thave the same name on the remote.\n \n-push.default::\n+`push.default`::\n \tDefines the action `git push` should take if no refspec is\n \tgiven (whether from the command-line, config, or elsewhere).\n \tDifferent values are well-suited for\n@@ -18,24 +18,28 @@ push.default::\n \t`upstream` is probably what you want.  Possible values are:\n +\n --\n-\n-* `nothing` - do not push anything (error out) unless a refspec is\n-  given. This is primarily meant for people who want to\n-  avoid mistakes by always being explicit.\n-\n-* `current` - push the current branch to update a branch with the same\n-  name on the receiving end.  Works in both central and non-central\n-  workflows.\n-\n-* `upstream` - push the current branch back to the branch whose\n-  changes are usually integrated into the current branch (which is\n-  called `@{upstream}`).  This mode only makes sense if you are\n-  pushing to the same repository you would normally pull from\n-  (i.e. central workflow).\n-\n-* `tracking` - This is a deprecated synonym for `upstream`.\n-\n-* `simple` - push the current branch with the same name on the remote.\n+`nothing`;;\n+do not push anything (error out) unless a refspec is\n+given. This is primarily meant for people who want to\n+avoid mistakes by always being explicit.\n+\n+`current`;;\n+push the current branch to update a branch with the same\n+name on the receiving end.  Works in both central and non-central\n+workflows.\n+\n+`upstream`;;\n+push the current branch back to the branch whose\n+changes are usually integrated into the current branch (which is\n+called `@{upstream}`).  This mode only makes sense if you are\n+pushing to the same repository you would normally pull from\n+(i.e. central workflow).\n+\n+`tracking`;;\n+this is a deprecated synonym for `upstream`.\n+\n+`simple`;;\n+push the current branch with the same name on the remote.\n +\n If you are working on a centralized workflow (pushing to the same repository you\n pull from, which is typically `origin`), then you need to configure an upstream\n@@ -44,16 +48,17 @@ branch with the same name.\n This mode is the default since Git 2.0, and is the safest option suited for\n beginners.\n \n-* `matching` - push all branches having the same name on both ends.\n-  This makes the repository you are pushing to remember the set of\n-  branches that will be pushed out (e.g. if you always push 'maint'\n-  and 'master' there and no other branches, the repository you push\n-  to will have these two branches, and your local 'maint' and\n-  'master' will be pushed there).\n+`matching`;;\n+push all branches having the same name on both ends.\n+This makes the repository you are pushing to remember the set of\n+branches that will be pushed out (e.g. if you always push `maint`\n+and `master` there and no other branches, the repository you push\n+to will have these two branches, and your local `maint` and\n+`master` will be pushed there).\n +\n To use this mode effectively, you have to make sure _all_ the\n branches you would push out are ready to be pushed out before\n-running 'git push', as the whole point of this mode is to allow you\n+running `git push`, as the whole point of this mode is to allow you\n to push all of the branches in one go.  If you usually finish work\n on only one branch and push out the result, while other branches are\n unfinished, this mode is not for you.  Also this mode is not\n@@ -66,24 +71,24 @@ new default).\n \n --\n \n-push.followTags::\n+`push.followTags`::\n \tIf set to true, enable `--follow-tags` option by default.  You\n \tmay override this configuration at time of push by specifying\n \t`--no-follow-tags`.\n \n-push.gpgSign::\n-\tMay be set to a boolean value, or the string 'if-asked'. A true\n+`push.gpgSign`::\n+\tMay be set to a boolean value, or the string `if-asked`. A true\n \tvalue causes all pushes to be GPG signed, as if `--signed` is\n-\tpassed to linkgit:git-push[1]. The string 'if-asked' causes\n+\tpassed to linkgit:git-push[1]. The string `if-asked` causes\n \tpushes to be signed if the server supports it, as if\n-\t`--signed=if-asked` is passed to 'git push'. A false value may\n+\t`--signed=if-asked` is passed to `git push`. A false value may\n \toverride a value from a lower-priority config file. An explicit\n \tcommand-line flag always overrides this config option.\n \n-push.pushOption::\n+`push.pushOption`::\n \tWhen no `--push-option=<option>` argument is given from the\n-\tcommand line, `git push` behaves as if each <value> of\n-\tthis variable is given as `--push-option=<value>`.\n+\tcommand line, `git push` behaves as if each _<option>_ of\n+\tthis variable is given as `--push-option=<option>`.\n +\n This is a multi-valued variable, and an empty value can be used in a\n higher priority configuration file (e.g. `.git/config` in a\n@@ -109,26 +114,26 @@ This will result in only b (a and c are cleared).\n \n ----\n \n-push.recurseSubmodules::\n-\tMay be \"check\", \"on-demand\", \"only\", or \"no\", with the same behavior\n-\tas that of \"push --recurse-submodules\".\n-\tIf not set, 'no' is used by default, unless 'submodule.recurse' is\n-\tset (in which case a 'true' value means 'on-demand').\n+`push.recurseSubmodules`::\n+\tMay be `check`, `on-demand`, `only`, or `no`, with the same behavior\n+\tas that of `push --recurse-submodules`.\n+\tIf not set, `no` is used by default, unless `submodule.recurse` is\n+\tset (in which case a `true` value means `on-demand`).\n \n-push.useForceIfIncludes::\n-\tIf set to \"true\", it is equivalent to specifying\n+`push.useForceIfIncludes`::\n+\tIf set to `true`, it is equivalent to specifying\n \t`--force-if-includes` as an option to linkgit:git-push[1]\n \tin the command line. Adding `--no-force-if-includes` at the\n \ttime of push overrides this configuration setting.\n \n-push.negotiate::\n-\tIf set to \"true\", attempt to reduce the size of the packfile\n+`push.negotiate`::\n+\tIf set to `true`, attempt to reduce the size of the packfile\n \tsent by rounds of negotiation in which the client and the\n-\tserver attempt to find commits in common. If \"false\", Git will\n+\tserver attempt to find commits in common. If `false`, Git will\n \trely solely on the server's ref advertisement to find commits\n \tin common.\n \n-push.useBitmaps::\n-\tIf set to \"false\", disable use of bitmaps for \"git push\" even if\n-\t`pack.useBitmaps` is \"true\", without preventing other git operations\n-\tfrom using bitmaps. Default is true.\n+`push.useBitmaps`::\n+\tIf set to `false`, disable use of bitmaps for `git push` even if\n+\t`pack.useBitmaps` is `true`, without preventing other git operations\n+\tfrom using bitmaps. Default is `true`.\ndiff --git a/Documentation/git-push.adoc b/Documentation/git-push.adoc\nindex 864b0d0467..e5ba3a6742 100644\n--- a/Documentation/git-push.adoc\n+++ b/Documentation/git-push.adoc\n@@ -8,13 +8,13 @@ git-push - Update remote refs along with associated objects\n \n SYNOPSIS\n --------\n-[verse]\n-'git push' [--all | --branches | --mirror | --tags] [--follow-tags] [--atomic] [-n | --dry-run] [--receive-pack=<git-receive-pack>]\n-\t   [--repo=<repository>] [-f | --force] [-d | --delete] [--prune] [-q | --quiet] [-v | --verbose]\n-\t   [-u | --set-upstream] [-o <string> | --push-option=<string>]\n-\t   [--[no-]signed|--signed=(true|false|if-asked)]\n-\t   [--force-with-lease[=<refname>[:<expect>]] [--force-if-includes]]\n-\t   [--no-verify] [<repository> [<refspec>...]]\n+[synopsis]\n+git push [--all | --branches | --mirror | --tags] [--follow-tags] [--atomic] [-n | --dry-run] [--receive-pack=<git-receive-pack>]\n+\t [--repo=<repository>] [-f | --force] [-d | --delete] [--prune] [-q | --quiet] [-v | --verbose]\n+\t [-u | --set-upstream] [-o <string> | --push-option=<string>]\n+\t [--[no-]signed | --signed=(true|false|if-asked)]\n+\t [--force-with-lease[=<refname>[:<expect>]] [--force-if-includes]]\n+\t [--no-verify] [<repository> [<refspec>...]]\n \n DESCRIPTION\n -----------\n@@ -35,7 +35,7 @@ To decide which branches, tags, or other refs to push, Git uses\n \n 1. The `<refspec>` argument(s) (for example `main` in `git push origin main`)\n    or the `--all`, `--mirror`, or `--tags` options\n-2. The `remote.*.push` configuration for the repository being pushed to\n+2. The `remote.<name>.push` configuration for the repository being pushed to\n 3. The `push.default` configuration. The default is `push.default=simple`,\n    which will push to a branch with the same name as the current branch.\n    See the <<CONFIGURATION,CONFIGURATION>> section below for more on `push.default`.\n@@ -49,25 +49,25 @@ You can make interesting things happen to a repository\n every time you push into it, by setting up 'hooks' there.  See\n documentation for linkgit:git-receive-pack[1].\n \n-\n-OPTIONS[[OPTIONS]]\n-------------------\n-<repository>::\n+[[OPTIONS]]\n+OPTIONS\n+-------\n+_<repository>_::\n \tThe \"remote\" repository that is the destination of a push\n \toperation.  This parameter can be either a URL\n \t(see the section <<URLS,GIT URLS>> below) or the name\n \tof a remote (see the section <<REMOTES,REMOTES>> below).\n \n-<refspec>...::\n+`<refspec>...`::\n \tSpecify what destination ref to update with what source object.\n +\n-The format for a refspec is [+]<src>[:<dst>], for example `main`,\n+The format for a refspec is `[+]<src>[:<dst>]`, for example `main`,\n `main:other`, or `HEAD^:refs/heads/main`.\n +\n-The `<src>` is often the name of the local branch to push, but it can be\n+The _<src>_ is often the name of the local branch to push, but it can be\n any arbitrary \"SHA-1 expression\" (see linkgit:gitrevisions[7]).\n +\n-The `<dst>` determines what ref to update on the remote side. It must be the\n+The _<dst>_ determines what ref to update on the remote side. It must be the\n name of a branch, tag, or other ref, not an arbitrary expression.\n +\n The `+` is optional and does the same thing as `--force`.\n@@ -78,23 +78,23 @@ and destination, or with a shorter form (for example `main` or\n `main:other`). Here are the rules for how refspecs are expanded,\n as well as various other special refspec forms:\n +\n- *  `<src>` without a `:<dst>` means to update the same ref as the\n-    `<src>`, unless the `remote.<repository>.push` configuration specifies a\n-    different <dst>. For example, if `main` is a branch, then the refspec\n+ *  _<src>_ without a `:<dst>` means to update the same ref as the\n+    _<src>_, unless the `remote.<repository>.push` configuration specifies a\n+    different _<dst>_. For example, if `main` is a branch, then the refspec\n     `main` expands to `main:refs/heads/main`.\n- *  If `<dst>` unambiguously refers to a ref on the <repository> remote,\n+ *  If _<dst>_ unambiguously refers to a ref on the <repository> remote,\n     then expand it to that ref. For example, if `v1.0` is a tag on the\n     remote, then `HEAD:v1.0` expands to `HEAD:refs/tags/v1.0`.\n- *  If `<src>` resolves to a ref starting with `refs/heads/` or `refs/tags/`,\n+ *  If _<src>_ resolves to a ref starting with `refs/heads/` or `refs/tags/`,\n     then prepend that to <dst>. For example, if `main` is a branch, then\n     `main:other` expands to `main:refs/heads/other`\n  *  The special refspec `:` (or `+:` to allow non-fast-forward updates)\n     directs Git to push \"matching\" branches: for every branch that exists on\n     the local side, the remote side is updated if a branch of the same name\n     already exists on the remote side.\n- *  <src> may contain a * to indicate a simple pattern match.\n+ *  _<src>_ may contain a `*` to indicate a simple pattern match.\n     This works like a glob that matches any ref matching the pattern.\n-    There must be only one * in both the `<src>` and `<dst>`.\n+    There must be only one `*` in both the `<src>` and `<dst>`.\n     It will map refs to the destination by replacing the * with the\n     contents matched from the source. For example, `refs/heads/*:refs/heads/*`\n     will push all branches.\n@@ -102,11 +102,11 @@ as well as various other special refspec forms:\n     This specifies refs to exclude. A ref will be considered to\n     match if it matches at least one positive refspec, and does not\n     match any negative refspec. Negative refspecs can be pattern refspecs.\n-    They must only contain a `<src>`.\n+    They must only contain a _<src>_.\n     Fully spelled out hex object names are also not supported.\n     For example, `git push origin 'refs/heads/*' '^refs/heads/dev-*'`\n     will push all branches except for those starting with `dev-`\n- *  If `<src>` is empty, it deletes the `<dst>` ref from the remote\n+ *  If _<src>_ is empty, it deletes the _<dst>_ ref from the remote\n     repository. For example, `git push origin :dev` will\n     delete the `dev` branch.\n  *  `tag <tag>` expands to `refs/tags/<tag>:refs/tags/<tag>`.\n@@ -121,12 +121,12 @@ as well as various other special refspec forms:\n \n Not all updates are allowed: see PUSH RULES below for the details.\n \n---all::\n---branches::\n+`--all`::\n+`--branches`::\n \tPush all branches (i.e. refs under `refs/heads/`); cannot be\n \tused with other <refspec>.\n \n---prune::\n+`--prune`::\n \tRemove remote branches that don't have a local counterpart. For example\n \ta remote branch `tmp` will be removed if a local branch with the same\n \tname doesn't exist any more. This also respects refspecs, e.g.\n@@ -134,7 +134,7 @@ Not all updates are allowed: see PUSH RULES below for the details.\n \tmake sure that remote `refs/tmp/foo` will be removed if `refs/heads/foo`\n \tdoesn't exist.\n \n---mirror::\n+`--mirror`::\n \tInstead of naming each ref to push, specifies that all\n \trefs under `refs/` (which includes but is not\n \tlimited to `refs/heads/`, `refs/remotes/`, and `refs/tags/`)\n@@ -145,26 +145,26 @@ Not all updates are allowed: see PUSH RULES below for the details.\n \tif the configuration option `remote.<remote>.mirror` is\n \tset.\n \n--n::\n---dry-run::\n+`-n`::\n+`--dry-run`::\n \tDo everything except actually send the updates.\n \n---porcelain::\n+`--porcelain`::\n \tProduce machine-readable output.  The output status line for each ref\n \twill be tab-separated and sent to stdout instead of stderr.  The full\n \tsymbolic names of the refs will be given.\n \n--d::\n---delete::\n+`-d`::\n+`--delete`::\n \tAll listed refs are deleted from the remote repository. This is\n \tthe same as prefixing all refs with a colon.\n \n---tags::\n+`--tags`::\n \tAll refs under `refs/tags` are pushed, in\n \taddition to refspecs explicitly listed on the command\n \tline.\n \n---follow-tags::\n+`--follow-tags`::\n \tPush all the refs that would be pushed without this option,\n \tand also push annotated tags in `refs/tags` that are missing\n \tfrom the remote but are pointing at commit-ish that are\n@@ -172,29 +172,34 @@ Not all updates are allowed: see PUSH RULES below for the details.\n \twith configuration variable `push.followTags`.  For more\n \tinformation, see `push.followTags` in linkgit:git-config[1].\n \n---signed::\n---no-signed::\n---signed=(true|false|if-asked)::\n+`--signed`::\n+`--no-signed`::\n+`--signed=(true|false|if-asked)`::\n \tGPG-sign the push request to update refs on the receiving\n \tside, to allow it to be checked by the hooks and/or be\n-\tlogged.  If `false` or `--no-signed`, no signing will be\n-\tattempted.  If `true` or `--signed`, the push will fail if the\n-\tserver does not support signed pushes.  If set to `if-asked`,\n-\tsign if and only if the server supports signed pushes.  The push\n-\twill also fail if the actual call to `gpg --sign` fails.  See\n-\tlinkgit:git-receive-pack[1] for the details on the receiving end.\n-\n---atomic::\n---no-atomic::\n+\tlogged. Possible values are:\n+`false`;;\n+`--no-signed`;;\n+no signing will be attempted.\n+`true`;;\n+`--signed`;;\n+the push will fail if the server does not support signed pushes.\n+`if-asked`;;\n+sign if and only if the server supports signed pushes.  The push\n+will also fail if the actual call to `gpg --sign` fails.  See\n+linkgit:git-receive-pack[1] for the details on the receiving end.\n+\n+`--atomic`::\n+`--no-atomic`::\n \tUse an atomic transaction on the remote side if available.\n \tEither all refs are updated, or on error, no refs are updated.\n \tIf the server does not support atomic pushes the push will fail.\n \n--o <option>::\n---push-option=<option>::\n+`-o <option>`::\n+`--push-option=<option>`::\n \tTransmit the given string to the server, which passes them to\n \tthe pre-receive as well as the post-receive hook. The given string\n-\tmust not contain a NUL or LF character.\n+\tmust not contain a _NUL_ or _LF_ character.\n \tWhen multiple `--push-option=<option>` are given, they are\n \tall sent to the other side in the order listed on the\n \tcommand line.\n@@ -202,22 +207,22 @@ Not all updates are allowed: see PUSH RULES below for the details.\n \tline, the values of configuration variable `push.pushOption`\n \tare used instead.\n \n---receive-pack=<git-receive-pack>::\n---exec=<git-receive-pack>::\n+`--receive-pack=<git-receive-pack>`::\n+`--exec=<git-receive-pack>`::\n \tPath to the 'git-receive-pack' program on the remote\n \tend.  Sometimes useful when pushing to a remote\n \trepository over ssh, and you do not have the program in\n-\ta directory on the default $PATH.\n+\ta directory on the default `$PATH`.\n \n---force-with-lease::\n---no-force-with-lease::\n---force-with-lease=<refname>::\n---force-with-lease=<refname>:<expect>::\n-\tUsually, \"git push\" refuses to update a remote ref that is\n+`--force-with-lease`::\n+`--no-force-with-lease`::\n+`--force-with-lease=<refname>`::\n+`--force-with-lease=<refname>:<expect>`::\n+\tUsually, `git push` refuses to update a remote ref that is\n \tnot an ancestor of the local ref used to overwrite it.\n +\n This option overrides this restriction if the current value of the\n-remote ref is the expected value.  \"git push\" fails otherwise.\n+remote ref is the expected value.  `git push` fails otherwise.\n +\n Imagine that you have to rebase what you have already published.\n You will have to bypass the \"must fast-forward\" rule in order to\n@@ -239,16 +244,16 @@ current value to be the same as the remote-tracking branch we have\n for them.\n +\n `--force-with-lease=<refname>`, without specifying the expected value, will\n-protect the named ref (alone), if it is going to be updated, by\n+protect _<refname>_ (alone), if it is going to be updated, by\n requiring its current value to be the same as the remote-tracking\n branch we have for it.\n +\n-`--force-with-lease=<refname>:<expect>` will protect the named ref (alone),\n+`--force-with-lease=<refname>:<expect>` will protect _<refname>_ (alone),\n if it is going to be updated, by requiring its current value to be\n-the same as the specified value `<expect>` (which is allowed to be\n+the same as the specified value _<expect>_ (which is allowed to be\n different from the remote-tracking branch we have for the refname,\n or we do not even have to have such a remote-tracking branch when\n-this form is used).  If `<expect>` is the empty string, then the named ref\n+this form is used).  If _<expect>_ is the empty string, then the named ref\n must not already exist.\n +\n Note that all forms other than `--force-with-lease=<refname>:<expect>`\n@@ -256,7 +261,7 @@ that specifies the expected current value of the ref explicitly are\n still experimental and their semantics may change as we gain experience\n with this feature.\n +\n-\"--no-force-with-lease\" will cancel all the previous --force-with-lease on the\n+`--no-force-with-lease` will cancel all the previous `--force-with-lease` on the\n command line.\n +\n A general note on safety: supplying this option without an expected\n@@ -276,23 +281,29 @@ If your editor or some other system is running `git fetch` in the\n background for you a way to mitigate this is to simply set up another\n remote:\n +\n-\tgit remote add origin-push $(git config remote.origin.url)\n-\tgit fetch origin-push\n+----\n+git remote add origin-push $(git config remote.origin.url)\n+git fetch origin-push\n+----\n +\n Now when the background process runs `git fetch origin` the references\n on `origin-push` won't be updated, and thus commands like:\n +\n-\tgit push --force-with-lease origin-push\n+----\n+git push --force-with-lease origin-push\n+----\n +\n Will fail unless you manually run `git fetch origin-push`. This method\n is of course entirely defeated by something that runs `git fetch\n --all`, in that case you'd need to either disable it or do something\n more tedious like:\n +\n-\tgit fetch              # update 'master' from remote\n-\tgit tag base master    # mark our base point\n-\tgit rebase -i master   # rewrite some commits\n-\tgit push --force-with-lease=master:base master:master\n+----\n+git fetch              # update 'master' from remote\n+git tag base master    # mark our base point\n+git rebase -i master   # rewrite some commits\n+git push --force-with-lease=master:base master:master\n+----\n +\n I.e. create a `base` tag for versions of the upstream code that you've\n seen and are willing to overwrite, then rewrite history, and finally\n@@ -308,26 +319,26 @@ verify if updates from the remote-tracking refs that may have been\n implicitly updated in the background are integrated locally before\n allowing a forced update.\n \n--f::\n---force::\n+`-f`::\n+`--force`::\n \tUsually, `git push` will refuse to update a branch that is not an\n \tancestor of the commit being pushed.\n +\n This flag disables that check, the other safety checks in PUSH RULES\n-below, and the checks in --force-with-lease. It can cause the remote\n+below, and the checks in `--force-with-lease`. It can cause the remote\n repository to lose commits; use it with care.\n +\n Note that `--force` applies to all the refs that are pushed, hence\n using it with `push.default` set to `matching` or with multiple push\n-destinations configured with `remote.*.push` may overwrite refs\n+destinations configured with `remote.<name>.push` may overwrite refs\n other than the current branch (including local refs that are\n strictly behind their remote counterpart).  To force a push to only\n one branch, use a `+` in front of the refspec to push (e.g `git push\n origin +master` to force a push to the `master` branch). See the\n `<refspec>...` section above for details.\n \n---force-if-includes::\n---no-force-if-includes::\n+`--force-if-includes`::\n+`--no-force-if-includes`::\n \tForce an update only if the tip of the remote-tracking ref\n \thas been integrated locally.\n +\n@@ -343,72 +354,78 @@ a \"no-op\".\n +\n Specifying `--no-force-if-includes` disables this behavior.\n \n---repo=<repository>::\n-\tThis option is equivalent to the <repository> argument. If both\n+`--repo=<repository>`::\n+\tThis option is equivalent to the _<repository>_ argument. If both\n \tare specified, the command-line argument takes precedence.\n \n--u::\n---set-upstream::\n+`-u`::\n+`--set-upstream`::\n \tFor every branch that is up to date or successfully pushed, add\n \tupstream (tracking) reference, used by argument-less\n \tlinkgit:git-pull[1] and other commands. For more information,\n \tsee `branch.<name>.merge` in linkgit:git-config[1].\n \n---thin::\n---no-thin::\n+`--thin`::\n+`--no-thin`::\n \tThese options are passed to linkgit:git-send-pack[1]. A thin transfer\n \tsignificantly reduces the amount of sent data when the sender and\n \treceiver share many of the same objects in common. The default is\n \t`--thin`.\n \n--q::\n---quiet::\n+`-q`::\n+`--quiet`::\n \tSuppress all output, including the listing of updated refs,\n \tunless an error occurs. Progress is not reported to the standard\n \terror stream.\n \n--v::\n---verbose::\n+`-v`::\n+`--verbose`::\n \tRun verbosely.\n \n---progress::\n+`--progress`::\n \tProgress status is reported on the standard error stream\n-\tby default when it is attached to a terminal, unless -q\n+\tby default when it is attached to a terminal, unless `-q`\n \tis specified. This flag forces progress status even if the\n \tstandard error stream is not directed to a terminal.\n \n---no-recurse-submodules::\n---recurse-submodules=check|on-demand|only|no::\n+`--no-recurse-submodules`::\n+`--recurse-submodules=(check|on-demand|only|no)`::\n \tMay be used to make sure all submodule commits used by the\n \trevisions to be pushed are available on a remote-tracking branch.\n-\tIf 'check' is used Git will verify that all submodule commits that\n+\tPossible values are:\n+`check`;;\n+        Git will verify that all submodule commits that\n \tchanged in the revisions to be pushed are available on at least one\n \tremote of the submodule. If any commits are missing the push will\n-\tbe aborted and exit with non-zero status. If 'on-demand' is used\n+\tbe aborted and exit with non-zero status.\n+`on-demand`;;\n \tall submodules that changed in the revisions to be pushed will be\n-\tpushed. If on-demand was not able to push all necessary revisions it will\n-\talso be aborted and exit with non-zero status. If 'only' is used all\n-\tsubmodules will be pushed while the superproject is left\n-\tunpushed. A value of 'no' or using `--no-recurse-submodules` can be used\n-\tto override the push.recurseSubmodules configuration variable when no\n-\tsubmodule recursion is required.\n-+\n-When using 'on-demand' or 'only', if a submodule has a\n-\"push.recurseSubmodules={on-demand,only}\" or \"submodule.recurse\" configuration,\n-further recursion will occur. In this case, \"only\" is treated as \"on-demand\".\n-\n---verify::\n---no-verify::\n+\tpushed. If `on-demand` was not able to push all necessary revisions it will\n+\talso be aborted and exit with non-zero status.\n+`only`;;\n+\tall submodules will be pushed while the superproject is left\n+\tunpushed.\n+`no`;;\n+\toverride the `push.recurseSubmodules` configuration variable when no\n+\tsubmodule recursion is required. Similar to using `--no-recurse-submodules`.\n+\n++\n+When using `on-demand` or `only`, if a submodule has a\n+`push.recurseSubmodules=(on-demand|only)` or `submodule.recurse` configuration,\n+further recursion will occur. In this case, `only` is treated as `on-demand`.\n+\n+`--verify`::\n+`--no-verify`::\n \tToggle the pre-push hook (see linkgit:githooks[5]).  The\n-\tdefault is --verify, giving the hook a chance to prevent the\n-\tpush.  With --no-verify, the hook is bypassed completely.\n+\tdefault is `--verify`, giving the hook a chance to prevent the\n+\tpush.  With `--no-verify`, the hook is bypassed completely.\n \n--4::\n---ipv4::\n+`-4`::\n+`--ipv4`::\n \tUse IPv4 addresses only, ignoring IPv6 addresses.\n \n--6::\n---ipv6::\n+`-6`::\n+`--ipv6`::\n \tUse IPv6 addresses only, ignoring IPv4 addresses.\n \n include::urls-remotes.adoc[]\n@@ -427,16 +444,16 @@ representing the status of a single ref. Each line is of the form:\n  <flag> <summary> <from> -> <to> (<reason>)\n -------------------------------\n \n-If --porcelain is used, then each line of the output is of the form:\n+If `--porcelain` is used, then each line of the output is of the form:\n \n -------------------------------\n  <flag> \\t <from>:<to> \\t <summary> (<reason>)\n -------------------------------\n \n-The status of up-to-date refs is shown only if --porcelain or --verbose\n+The status of up-to-date refs is shown only if `--porcelain` or `--verbose`\n option is used.\n \n-flag::\n+_<flag>_::\n \tA single character indicating the status of the ref:\n (space);; for a successfully pushed fast-forward;\n `+`;; for a successful forced update;\n@@ -445,7 +462,7 @@ flag::\n `!`;; for a ref that was rejected or failed to push; and\n `=`;; for a ref that was up to date and did not need pushing.\n \n-summary::\n+_<summary>_::\n \tFor a successfully pushed ref, the summary shows the old and new\n \tvalues of the ref in a form suitable for using as an argument to\n \t`git log` (this is `<old>..<new>` in most cases, and\n@@ -586,7 +603,7 @@ Updating A with the resulting merge commit will fast-forward and your\n push will be accepted.\n \n Alternatively, you can rebase your change between X and B on top of A,\n-with \"git pull --rebase\", and push the result back.  The rebase will\n+with `git pull --rebase`, and push the result back.  The rebase will\n create a new commit D that builds the change between X and B on top of\n A.\n \n@@ -604,12 +621,12 @@ accepted.\n There is another common situation where you may encounter non-fast-forward\n rejection when you try to push, and it is possible even when you are\n pushing into a repository nobody else pushes into. After you push commit\n-A yourself (in the first picture in this section), replace it with \"git\n-commit --amend\" to produce commit B, and you try to push it out, because\n+A yourself (in the first picture in this section), replace it with `git\n+commit --amend` to produce commit B, and you try to push it out, because\n forgot that you have pushed A out already. In such a case, and only if\n you are certain that nobody in the meantime fetched your earlier commit A\n-(and started building on top of it), you can run \"git push --force\" to\n-overwrite it. In other words, \"git push --force\" is a method reserved for\n+(and started building on top of it), you can run `git push --force` to\n+overwrite it. In other words, `git push --force` is a method reserved for\n a case where you do mean to lose history.\n \n \n@@ -627,18 +644,18 @@ EXAMPLES\n \tvariable) if it has the same name as the current branch, and\n \terrors out without pushing otherwise.\n +\n-The default behavior of this command when no <refspec> is given can be\n+The default behavior of this command when no _<refspec>_ is given can be\n configured by setting the `push` option of the remote, or the `push.default`\n configuration variable.\n +\n For example, to default to pushing only the current branch to `origin`\n-use `git config remote.origin.push HEAD`.  Any valid <refspec> (like\n+use `git config remote.origin.push HEAD`.  Any valid _<refspec>_ (like\n the ones in the examples below) can be configured as the default for\n `git push origin`.\n \n `git push origin :`::\n \tPush \"matching\" branches to `origin`. See\n-\t<refspec> in the <<OPTIONS,OPTIONS>> section above for a\n+\t_<refspec>_ in the <<OPTIONS,OPTIONS>> section above for a\n \tdescription of \"matching\" branches.\n \n `git push origin master`::\n-- \ngitgitgadget\n"},{"id":"531209","messageId":"pull.2002.v2.git.1763988532.gitgitgadget@gmail.com","threadId":"64512","inReplyTo":"pull.2002.git.1763588404.gitgitgadget@gmail.com","subject":"[PATCH v2 0/3] doc: convert fetch pull push to synopsis style","fromName":"Jean-Noël Avila via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-11-24T12:48:49Z","receivedAt":"2025-11-24T12:48:56Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"This is the continuity of the conversion to the synopsis style with a few\nadditional formatting changes.\n\nChange since V1: While proofreading again, I found a typo (extraneous\nunderscore character).\n\nJean-Noël Avila (3):\n  doc: convert git fetch to synopsis style\n  doc: convert git pull to synopsis style\n  doc: convert git push to synopsis style\n\n Documentation/config/fetch.adoc     |  60 +++----\n Documentation/config/push.adoc      | 113 ++++++------\n Documentation/fetch-options.adoc    | 211 +++++++++++-----------\n Documentation/git-fetch.adoc        |  48 ++---\n Documentation/git-pull.adoc         |  61 ++++---\n Documentation/git-push.adoc         | 267 +++++++++++++++-------------\n Documentation/merge-options.adoc    |   2 +-\n Documentation/pull-fetch-param.adoc |  50 +++---\n Documentation/urls-remotes.adoc     |  18 +-\n builtin/fetch.c                     |   2 +-\n 10 files changed, 427 insertions(+), 405 deletions(-)\n\n\nbase-commit: fd372d9b1a69a01a676398882bbe3840bf51fe72\nPublished-As: https://github.com/gitgitgadget/git/releases/tag/pr-2002%2Fjnavila%2Fdoc_git_fetch-v2\nFetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2002/jnavila/doc_git_fetch-v2\nPull-Request: https://github.com/gitgitgadget/git/pull/2002\n\nRange-diff vs v1:\n\n 1:  397f56d874 ! 1:  994f6ee414 doc: convert git fetch to synopsis style\n     @@ Documentation/pull-fetch-param.adoc: namespace it's being fetched to, the type o\n       +\n       Until Git version 2.20, and unlike when pushing with\n       linkgit:git-push[1], any updates to `refs/tags/*` would be accepted\n     -@@ Documentation/pull-fetch-param.adoc: object.\n     - When the remote branch you want to fetch is known to\n     - be rewound and rebased regularly, it is expected that\n     - its new tip will not be a descendant of its previous tip\n     --(as stored in your remote-tracking branch the last time\n     -+(as stored in your remote-tracking branch the last time_\n     - you fetched).  You would want\n     - to use the `+` sign to indicate non-fast-forward updates\n     - will be needed for such branches.  There is no way to\n      @@ Documentation/pull-fetch-param.adoc: must know this is the expected usage pattern for a branch.\n       ifdef::git-pull[]\n       +\n 2:  5b1e64bdf8 = 2:  6e9ea10311 doc: convert git pull to synopsis style\n 3:  e5526eaf58 = 3:  9c70b341bb doc: convert git push to synopsis style\n\n-- \ngitgitgadget\n"},{"id":"531210","messageId":"994f6ee414305ab88258141a24bf82486da56f4d.1763988532.git.gitgitgadget@gmail.com","threadId":"64512","inReplyTo":"pull.2002.v2.git.1763988532.gitgitgadget@gmail.com","subject":"[PATCH v2 1/3] doc: convert git fetch to synopsis style","fromName":"Jean-Noël Avila via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-11-24T12:48:50Z","receivedAt":"2025-11-24T12:48:59Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"From: =?UTF-8?q?Jean-No=C3=ABl=20Avila?= <jn.avila@free.fr>\n\n- Switch the synopsis to a synopsis block which will automatically\n  format placeholders in italics and keywords in monospace\n- Use _<placeholder>_ instead of <placeholder> in the description\n- Use `backticks` for keywords and more complex option\ndescriptions. The new rendering engine will apply synopsis rules to\nthese spans.\n\nSigned-off-by: Jean-Noël Avila <jn.avila@free.fr>\n---\n Documentation/config/fetch.adoc     |  60 ++++-----\n Documentation/fetch-options.adoc    | 201 ++++++++++++++--------------\n Documentation/git-fetch.adoc        |  48 +++----\n Documentation/pull-fetch-param.adoc |  50 +++----\n Documentation/urls-remotes.adoc     |  16 +--\n builtin/fetch.c                     |   2 +-\n 6 files changed, 189 insertions(+), 188 deletions(-)\n\ndiff --git a/Documentation/config/fetch.adoc b/Documentation/config/fetch.adoc\nindex d7dc461bd1..cd40db0cad 100644\n--- a/Documentation/config/fetch.adoc\n+++ b/Documentation/config/fetch.adoc\n@@ -1,32 +1,32 @@\n-fetch.recurseSubmodules::\n+`fetch.recurseSubmodules`::\n \tThis option controls whether `git fetch` (and the underlying fetch\n \tin `git pull`) will recursively fetch into populated submodules.\n-\tThis option can be set either to a boolean value or to 'on-demand'.\n+\tThis option can be set either to a boolean value or to `on-demand`.\n \tSetting it to a boolean changes the behavior of fetch and pull to\n \trecurse unconditionally into submodules when set to true or to not\n-\trecurse at all when set to false. When set to 'on-demand', fetch and\n+\trecurse at all when set to false. When set to `on-demand`, fetch and\n \tpull will only recurse into a populated submodule when its\n \tsuperproject retrieves a commit that updates the submodule's\n \treference.\n-\tDefaults to 'on-demand', or to the value of 'submodule.recurse' if set.\n+\tDefaults to `on-demand`, or to the value of `submodule.recurse` if set.\n \n-fetch.fsckObjects::\n+`fetch.fsckObjects`::\n \tIf it is set to true, git-fetch-pack will check all fetched\n \tobjects. See `transfer.fsckObjects` for what's\n-\tchecked. Defaults to false. If not set, the value of\n+\tchecked. Defaults to `false`. If not set, the value of\n \t`transfer.fsckObjects` is used instead.\n \n-fetch.fsck.<msg-id>::\n+`fetch.fsck.<msg-id>`::\n \tActs like `fsck.<msg-id>`, but is used by\n \tlinkgit:git-fetch-pack[1] instead of linkgit:git-fsck[1]. See\n \tthe `fsck.<msg-id>` documentation for details.\n \n-fetch.fsck.skipList::\n+`fetch.fsck.skipList`::\n \tActs like `fsck.skipList`, but is used by\n \tlinkgit:git-fetch-pack[1] instead of linkgit:git-fsck[1]. See\n \tthe `fsck.skipList` documentation for details.\n \n-fetch.unpackLimit::\n+`fetch.unpackLimit`::\n \tIf the number of objects fetched over the Git native\n \ttransfer is below this\n \tlimit, then the objects will be unpacked into loose object\n@@ -37,12 +37,12 @@ fetch.unpackLimit::\n \tespecially on slow filesystems.  If not set, the value of\n \t`transfer.unpackLimit` is used instead.\n \n-fetch.prune::\n+`fetch.prune`::\n \tIf true, fetch will automatically behave as if the `--prune`\n \toption was given on the command line.  See also `remote.<name>.prune`\n \tand the PRUNING section of linkgit:git-fetch[1].\n \n-fetch.pruneTags::\n+`fetch.pruneTags`::\n \tIf true, fetch will automatically behave as if the\n \t`refs/tags/*:refs/tags/*` refspec was provided when pruning,\n \tif not set already. This allows for setting both this option\n@@ -50,41 +50,41 @@ fetch.pruneTags::\n \trefs. See also `remote.<name>.pruneTags` and the PRUNING\n \tsection of linkgit:git-fetch[1].\n \n-fetch.all::\n+`fetch.all`::\n \tIf true, fetch will attempt to update all available remotes.\n \tThis behavior can be overridden by passing `--no-all` or by\n \texplicitly specifying one or more remote(s) to fetch from.\n-\tDefaults to false.\n+\tDefaults to `false`.\n \n-fetch.output::\n+`fetch.output`::\n \tControl how ref update status is printed. Valid values are\n \t`full` and `compact`. Default value is `full`. See the\n \tOUTPUT section in linkgit:git-fetch[1] for details.\n \n-fetch.negotiationAlgorithm::\n+`fetch.negotiationAlgorithm`::\n \tControl how information about the commits in the local repository\n \tis sent when negotiating the contents of the packfile to be sent by\n-\tthe server.  Set to \"consecutive\" to use an algorithm that walks\n-\tover consecutive commits checking each one.  Set to \"skipping\" to\n+\tthe server.  Set to `consecutive` to use an algorithm that walks\n+\tover consecutive commits checking each one.  Set to `skipping` to\n \tuse an algorithm that skips commits in an effort to converge\n \tfaster, but may result in a larger-than-necessary packfile; or set\n-\tto \"noop\" to not send any information at all, which will almost\n+\tto `noop` to not send any information at all, which will almost\n \tcertainly result in a larger-than-necessary packfile, but will skip\n-\tthe negotiation step.  Set to \"default\" to override settings made\n+\tthe negotiation step.  Set to `default` to override settings made\n \tpreviously and use the default behaviour.  The default is normally\n-\t\"consecutive\", but if `feature.experimental` is true, then the\n-\tdefault is \"skipping\".  Unknown values will cause 'git fetch' to\n+\t`consecutive`, but if `feature.experimental` is `true`, then the\n+\tdefault is `skipping`.  Unknown values will cause `git fetch` to\n \terror out.\n +\n See also the `--negotiate-only` and `--negotiation-tip` options to\n linkgit:git-fetch[1].\n \n-fetch.showForcedUpdates::\n-\tSet to false to enable `--no-show-forced-updates` in\n+`fetch.showForcedUpdates`::\n+\tSet to `false` to enable `--no-show-forced-updates` in\n \tlinkgit:git-fetch[1] and linkgit:git-pull[1] commands.\n-\tDefaults to true.\n+\tDefaults to `true`.\n \n-fetch.parallel::\n+`fetch.parallel`::\n \tSpecifies the maximal number of fetch operations to be run in parallel\n \tat a time (submodules, or remotes when the `--multiple` option of\n \tlinkgit:git-fetch[1] is in effect).\n@@ -94,16 +94,16 @@ A value of 0 will give some reasonable default. If unset, it defaults to 1.\n For submodules, this setting can be overridden using the `submodule.fetchJobs`\n config setting.\n \n-fetch.writeCommitGraph::\n+`fetch.writeCommitGraph`::\n \tSet to true to write a commit-graph after every `git fetch` command\n \tthat downloads a pack-file from a remote. Using the `--split` option,\n \tmost executions will create a very small commit-graph file on top of\n \tthe existing commit-graph file(s). Occasionally, these files will\n \tmerge and the write may take longer. Having an updated commit-graph\n \tfile helps performance of many Git commands, including `git merge-base`,\n-\t`git push -f`, and `git log --graph`. Defaults to false.\n+\t`git push -f`, and `git log --graph`. Defaults to `false`.\n \n-fetch.bundleURI::\n+`fetch.bundleURI`::\n \tThis value stores a URI for downloading Git object data from a bundle\n \tURI before performing an incremental fetch from the origin Git server.\n \tThis is similar to how the `--bundle-uri` option behaves in\n@@ -115,9 +115,9 @@ If you modify this value and your repository has a `fetch.bundleCreationToken`\n value, then remove that `fetch.bundleCreationToken` value before fetching from\n the new bundle URI.\n \n-fetch.bundleCreationToken::\n+`fetch.bundleCreationToken`::\n \tWhen using `fetch.bundleURI` to fetch incrementally from a bundle\n-\tlist that uses the \"creationToken\" heuristic, this config value\n+\tlist that uses the \"`creationToken`\" heuristic, this config value\n \tstores the maximum `creationToken` value of the downloaded bundles.\n \tThis value is used to prevent downloading bundles in the future\n \tif the advertised `creationToken` is not strictly larger than this\ndiff --git a/Documentation/fetch-options.adoc b/Documentation/fetch-options.adoc\nindex ad1e1f49be..35a84a1ef2 100644\n--- a/Documentation/fetch-options.adoc\n+++ b/Documentation/fetch-options.adoc\n@@ -1,41 +1,41 @@\n---all::\n---no-all::\n+`--all`::\n+`--no-all`::\n \tFetch all remotes, except for the ones that has the\n \t`remote.<name>.skipFetchAll` configuration variable set.\n \tThis overrides the configuration variable `fetch.all`.\n \n--a::\n---append::\n+`-a`::\n+`--append`::\n \tAppend ref names and object names of fetched refs to the\n \texisting contents of `.git/FETCH_HEAD`.  Without this\n \toption old data in `.git/FETCH_HEAD` will be overwritten.\n \n---atomic::\n+`--atomic`::\n \tUse an atomic transaction to update local refs. Either all refs are\n \tupdated, or on error, no refs are updated.\n \n---depth=<depth>::\n+`--depth=<depth>`::\n \tLimit fetching to the specified number of commits from the tip of\n \teach remote branch history. If fetching to a 'shallow' repository\n \tcreated by `git clone` with `--depth=<depth>` option (see\n \tlinkgit:git-clone[1]), deepen or shorten the history to the specified\n \tnumber of commits. Tags for the deepened commits are not fetched.\n \n---deepen=<depth>::\n-\tSimilar to --depth, except it specifies the number of commits\n+`--deepen=<depth>`::\n+\tSimilar to `--depth`, except it specifies the number of commits\n \tfrom the current shallow boundary instead of from the tip of\n \teach remote branch history.\n \n---shallow-since=<date>::\n+`--shallow-since=<date>`::\n \tDeepen or shorten the history of a shallow repository to\n-\tinclude all reachable commits after <date>.\n+\tinclude all reachable commits after _<date>_.\n \n---shallow-exclude=<ref>::\n+`--shallow-exclude=<ref>`::\n \tDeepen or shorten the history of a shallow repository to\n \texclude commits reachable from a specified remote branch or tag.\n \tThis option can be specified multiple times.\n \n---unshallow::\n+`--unshallow`::\n \tIf the source repository is complete, convert a shallow\n \trepository to a complete one, removing all the limitations\n \timposed by shallow repositories.\n@@ -43,13 +43,13 @@\n If the source repository is shallow, fetch as much as possible so that\n the current repository has the same history as the source repository.\n \n---update-shallow::\n+`--update-shallow`::\n \tBy default when fetching from a shallow repository,\n \t`git fetch` refuses refs that require updating\n-\t.git/shallow. This option updates .git/shallow and accepts such\n+\t`.git/shallow`. This option updates `.git/shallow` and accepts such\n \trefs.\n \n---negotiation-tip=<commit|glob>::\n+`--negotiation-tip=(<commit>|<glob>)`::\n \tBy default, Git will report, to the server, commits reachable\n \tfrom all local refs to find common commits in an attempt to\n \treduce the size of the to-be-received packfile. If specified,\n@@ -69,28 +69,28 @@ See also the `fetch.negotiationAlgorithm` and `push.negotiate`\n configuration variables documented in linkgit:git-config[1], and the\n `--negotiate-only` option below.\n \n---negotiate-only::\n+`--negotiate-only`::\n \tDo not fetch anything from the server, and instead print the\n \tancestors of the provided `--negotiation-tip=*` arguments,\n \twhich we have in common with the server.\n +\n-This is incompatible with `--recurse-submodules=[yes|on-demand]`.\n+This is incompatible with `--recurse-submodules=(yes|on-demand)`.\n Internally this is used to implement the `push.negotiate` option, see\n linkgit:git-config[1].\n \n---dry-run::\n+`--dry-run`::\n \tShow what would be done, without making any changes.\n \n---porcelain::\n+`--porcelain`::\n \tPrint the output to standard output in an easy-to-parse format for\n \tscripts. See section OUTPUT in linkgit:git-fetch[1] for details.\n +\n-This is incompatible with `--recurse-submodules=[yes|on-demand]` and takes\n+This is incompatible with `--recurse-submodules=(yes|on-demand)` and takes\n precedence over the `fetch.output` config option.\n \n ifndef::git-pull[]\n---write-fetch-head::\n---no-write-fetch-head::\n+`--write-fetch-head`::\n+`--no-write-fetch-head`::\n \tWrite the list of remote refs fetched in the `FETCH_HEAD`\n \tfile directly under `$GIT_DIR`.  This is the default.\n \tPassing `--no-write-fetch-head` from the command line tells\n@@ -98,64 +98,65 @@ ifndef::git-pull[]\n \tfile is never written.\n endif::git-pull[]\n \n--f::\n---force::\n-\tWhen 'git fetch' is used with `<src>:<dst>` refspec, it may\n-\trefuse to update the local branch as discussed\n+`-f`::\n+`--force`::\n ifdef::git-pull[]\n-\tin the `<refspec>` part of the linkgit:git-fetch[1]\n-\tdocumentation.\n+When `git fetch` is used with `<src>:<dst>` refspec, it may\n+refuse to update the local branch as discussed\n+in the _<refspec>_ part of the linkgit:git-fetch[1]\n+documentation.\n endif::git-pull[]\n ifndef::git-pull[]\n-\tin the `<refspec>` part below.\n+When `git fetch` is used with `<src>:<dst>` refspec, it may\n+refuse to update the local branch as discussed in the _<refspec>_ part below.\n endif::git-pull[]\n-\tThis option overrides that check.\n+This option overrides that check.\n \n--k::\n---keep::\n+`-k`::\n+`--keep`::\n \tKeep downloaded pack.\n \n ifndef::git-pull[]\n---multiple::\n-\tAllow several <repository> and <group> arguments to be\n-\tspecified. No <refspec>s may be specified.\n-\n---auto-maintenance::\n---no-auto-maintenance::\n---auto-gc::\n---no-auto-gc::\n+`--multiple`::\n+\tAllow several _<repository>_ and _<group>_ arguments to be\n+\tspecified. No __<refspec>__s may be specified.\n+\n+`--auto-maintenance`::\n+`--no-auto-maintenance`::\n+`--auto-gc`::\n+`--no-auto-gc`::\n \tRun `git maintenance run --auto` at the end to perform automatic\n \trepository maintenance if needed. (`--[no-]auto-gc` is a synonym.)\n \tThis is enabled by default.\n \n---write-commit-graph::\n---no-write-commit-graph::\n+`--write-commit-graph`::\n+`--no-write-commit-graph`::\n \tWrite a commit-graph after fetching. This overrides the config\n \tsetting `fetch.writeCommitGraph`.\n endif::git-pull[]\n \n---prefetch::\n+`--prefetch`::\n \tModify the configured refspec to place all refs into the\n \t`refs/prefetch/` namespace. See the `prefetch` task in\n \tlinkgit:git-maintenance[1].\n \n--p::\n---prune::\n+`-p`::\n+`--prune`::\n \tBefore fetching, remove any remote-tracking references that no\n \tlonger exist on the remote.  Tags are not subject to pruning\n \tif they are fetched only because of the default tag\n-\tauto-following or due to a --tags option.  However, if tags\n+\tauto-following or due to a `--tags` option.  However, if tags\n \tare fetched due to an explicit refspec (either on the command\n \tline or in the remote configuration, for example if the remote\n-\twas cloned with the --mirror option), then they are also\n+\twas cloned with the `--mirror` option), then they are also\n \tsubject to pruning. Supplying `--prune-tags` is a shorthand for\n \tproviding the tag refspec.\n ifndef::git-pull[]\n +\n See the PRUNING section below for more details.\n \n--P::\n---prune-tags::\n+`-P`::\n+`--prune-tags`::\n \tBefore fetching, remove any local tags that no longer exist on\n \tthe remote if `--prune` is enabled. This option should be used\n \tmore carefully, unlike `--prune` it will remove any local\n@@ -168,17 +169,17 @@ See the PRUNING section below for more details.\n endif::git-pull[]\n \n ifndef::git-pull[]\n--n::\n+`-n`::\n endif::git-pull[]\n---no-tags::\n+`--no-tags`::\n \tBy default, tags that point at objects that are downloaded\n \tfrom the remote repository are fetched and stored locally.\n \tThis option disables this automatic tag following. The default\n-\tbehavior for a remote may be specified with the remote.<name>.tagOpt\n+\tbehavior for a remote may be specified with the `remote.<name>.tagOpt`\n \tsetting. See linkgit:git-config[1].\n \n ifndef::git-pull[]\n---refetch::\n+`--refetch`::\n \tInstead of negotiating with the server to avoid transferring commits and\n \tassociated objects that are already present locally, this option fetches\n \tall objects as a fresh clone would. Use this to reapply a partial clone\n@@ -187,19 +188,19 @@ ifndef::git-pull[]\n \tobject database pack consolidation to remove any duplicate objects.\n endif::git-pull[]\n \n---refmap=<refspec>::\n+`--refmap=<refspec>`::\n \tWhen fetching refs listed on the command line, use the\n \tspecified refspec (can be given more than once) to map the\n \trefs to remote-tracking branches, instead of the values of\n-\t`remote.*.fetch` configuration variables for the remote\n+\t`remote.<name>.fetch` configuration variables for the remote\n \trepository.  Providing an empty `<refspec>` to the\n \t`--refmap` option causes Git to ignore the configured\n \trefspecs and rely entirely on the refspecs supplied as\n \tcommand-line arguments. See section on \"Configured Remote-tracking\n \tBranches\" for details.\n \n--t::\n---tags::\n+`-t`::\n+`--tags`::\n \tFetch all tags from the remote (i.e., fetch remote tags\n \t`refs/tags/*` into local tags with the same name), in addition\n \tto whatever else would otherwise be fetched.  Using this\n@@ -208,8 +209,8 @@ endif::git-pull[]\n \tdestination of an explicit refspec; see `--prune`).\n \n ifndef::git-pull[]\n---recurse-submodules[=(yes|on-demand|no)]::\n-\tThis option controls if and under what conditions new commits of\n+`--recurse-submodules[=(yes|on-demand|no)]`::\n+\tControl if and under what conditions new commits of\n \tsubmodules should be fetched too. When recursing through submodules,\n \t`git fetch` always attempts to fetch \"changed\" submodules, that is, a\n \tsubmodule that has commits that are referenced by a newly fetched\n@@ -219,19 +220,19 @@ ifndef::git-pull[]\n \tadds a new submodule, that submodule cannot be fetched until it is\n \tcloned e.g. by `git submodule update`.\n +\n-When set to 'on-demand', only changed submodules are fetched. When set\n-to 'yes', all populated submodules are fetched and submodules that are\n-both unpopulated and changed are fetched. When set to 'no', submodules\n+When set to `on-demand`, only changed submodules are fetched. When set\n+to `yes`, all populated submodules are fetched and submodules that are\n+both unpopulated and changed are fetched. When set to `no`, submodules\n are never fetched.\n +\n When unspecified, this uses the value of `fetch.recurseSubmodules` if it\n-is set (see linkgit:git-config[1]), defaulting to 'on-demand' if unset.\n-When this option is used without any value, it defaults to 'yes'.\n+is set (see linkgit:git-config[1]), defaulting to `on-demand` if unset.\n+When this option is used without any value, it defaults to `yes`.\n endif::git-pull[]\n \n--j::\n---jobs=<n>::\n-\tNumber of parallel children to be used for all forms of fetching.\n+`-j <n>`::\n+`--jobs=<n>`::\n+\tParallelize all forms of fetching up to _<n>_ jobs at a time.\n +\n If the `--multiple` option was specified, the different remotes will be fetched\n in parallel. If multiple submodules are fetched, they will be fetched in\n@@ -242,12 +243,12 @@ Typically, parallel recursive and multi-remote fetches will be faster. By\n default fetches are performed sequentially, not in parallel.\n \n ifndef::git-pull[]\n---no-recurse-submodules::\n+`--no-recurse-submodules`::\n \tDisable recursive fetching of submodules (this has the same effect as\n \tusing the `--recurse-submodules=no` option).\n endif::git-pull[]\n \n---set-upstream::\n+`--set-upstream`::\n \tIf the remote is fetched successfully, add upstream\n \t(tracking) reference, used by argument-less\n \tlinkgit:git-pull[1] and other commands. For more information,\n@@ -255,55 +256,55 @@ endif::git-pull[]\n \tlinkgit:git-config[1].\n \n ifndef::git-pull[]\n---submodule-prefix=<path>::\n-\tPrepend <path> to paths printed in informative messages\n+`--submodule-prefix=<path>`::\n+\tPrepend _<path>_ to paths printed in informative messages\n \tsuch as \"Fetching submodule foo\".  This option is used\n \tinternally when recursing over submodules.\n \n---recurse-submodules-default=[yes|on-demand]::\n+`--recurse-submodules-default=(yes|on-demand)`::\n \tThis option is used internally to temporarily provide a\n-\tnon-negative default value for the --recurse-submodules\n+\tnon-negative default value for the `--recurse-submodules`\n \toption.  All other methods of configuring fetch's submodule\n \trecursion (such as settings in linkgit:gitmodules[5] and\n \tlinkgit:git-config[1]) override this option, as does\n-\tspecifying --[no-]recurse-submodules directly.\n+\tspecifying `--[no-]recurse-submodules` directly.\n \n--u::\n---update-head-ok::\n-\tBy default 'git fetch' refuses to update the head which\n+`-u`::\n+`--update-head-ok`::\n+\tBy default `git fetch` refuses to update the head which\n \tcorresponds to the current branch.  This flag disables the\n-\tcheck.  This is purely for the internal use for 'git pull'\n-\tto communicate with 'git fetch', and unless you are\n+\tcheck.  This is purely for the internal use for `git pull`\n+\tto communicate with `git fetch`, and unless you are\n \timplementing your own Porcelain you are not supposed to\n \tuse it.\n endif::git-pull[]\n \n---upload-pack <upload-pack>::\n+`--upload-pack <upload-pack>`::\n \tWhen given, and the repository to fetch from is handled\n-\tby 'git fetch-pack', `--exec=<upload-pack>` is passed to\n+\tby `git fetch-pack`, `--exec=<upload-pack>` is passed to\n \tthe command to specify non-default path for the command\n \trun on the other end.\n \n ifndef::git-pull[]\n--q::\n---quiet::\n-\tPass --quiet to git-fetch-pack and silence any other internally\n+`-q`::\n+`--quiet`::\n+\tPass `--quiet` to `git-fetch-pack` and silence any other internally\n \tused git commands. Progress is not reported to the standard error\n \tstream.\n \n--v::\n---verbose::\n+`-v`::\n+`--verbose`::\n \tBe verbose.\n endif::git-pull[]\n \n---progress::\n+`--progress`::\n \tProgress status is reported on the standard error stream\n-\tby default when it is attached to a terminal, unless -q\n+\tby default when it is attached to a terminal, unless `-q`\n \tis specified. This flag forces progress status even if the\n \tstandard error stream is not directed to a terminal.\n \n--o <option>::\n---server-option=<option>::\n+`-o <option>`::\n+`--server-option=<option>`::\n \tTransmit the given string to the server when communicating using\n \tprotocol version 2.  The given string must not contain a NUL or LF\n \tcharacter.  The server's handling of server options, including\n@@ -314,23 +315,23 @@ endif::git-pull[]\n \tthe values of configuration variable `remote.<name>.serverOption`\n \tare used instead.\n \n---show-forced-updates::\n+`--show-forced-updates`::\n \tBy default, git checks if a branch is force-updated during\n-\tfetch. This can be disabled through fetch.showForcedUpdates, but\n-\tthe --show-forced-updates option guarantees this check occurs.\n+\tfetch. This can be disabled through `fetch.showForcedUpdates`, but\n+\tthe `--show-forced-updates` option guarantees this check occurs.\n \tSee linkgit:git-config[1].\n \n---no-show-forced-updates::\n+`--no-show-forced-updates`::\n \tBy default, git checks if a branch is force-updated during\n-\tfetch. Pass --no-show-forced-updates or set fetch.showForcedUpdates\n+\tfetch. Pass `--no-show-forced-updates` or set `fetch.showForcedUpdates`\n \tto false to skip this check for performance reasons. If used during\n-\t'git-pull' the --ff-only option will still check for forced updates\n+\t`git-pull` the `--ff-only` option will still check for forced updates\n \tbefore attempting a fast-forward update. See linkgit:git-config[1].\n \n--4::\n---ipv4::\n+`-4`::\n+`--ipv4`::\n \tUse IPv4 addresses only, ignoring IPv6 addresses.\n \n--6::\n---ipv6::\n+`-6`::\n+`--ipv6`::\n \tUse IPv6 addresses only, ignoring IPv4 addresses.\ndiff --git a/Documentation/git-fetch.adoc b/Documentation/git-fetch.adoc\nindex 16f5d9d69a..db03541915 100644\n--- a/Documentation/git-fetch.adoc\n+++ b/Documentation/git-fetch.adoc\n@@ -8,11 +8,11 @@ git-fetch - Download objects and refs from another repository\n \n SYNOPSIS\n --------\n-[verse]\n-'git fetch' [<options>] [<repository> [<refspec>...]]\n-'git fetch' [<options>] <group>\n-'git fetch' --multiple [<options>] [(<repository> | <group>)...]\n-'git fetch' --all [<options>]\n+[synopsis]\n+git fetch [<options>] [<repository> [<refspec>...]]\n+git fetch [<options>] <group>\n+git fetch --multiple [<options>] [(<repository>|<group>)...]\n+git fetch --all [<options>]\n \n \n DESCRIPTION\n@@ -20,19 +20,19 @@ DESCRIPTION\n Fetch branches and/or tags (collectively, \"refs\") from one or more\n other repositories, along with the objects necessary to complete their\n histories.  Remote-tracking branches are updated (see the description\n-of <refspec> below for ways to control this behavior).\n+of _<refspec>_ below for ways to control this behavior).\n \n By default, any tag that points into the histories being fetched is\n also fetched; the effect is to fetch tags that\n point at branches that you are interested in.  This default behavior\n-can be changed by using the --tags or --no-tags options or by\n-configuring remote.<name>.tagOpt.  By using a refspec that fetches tags\n+can be changed by using the `--tags` or `--no-tags` options or by\n+configuring `remote.<name>.tagOpt`.  By using a refspec that fetches tags\n explicitly, you can fetch tags that do not point into branches you\n are interested in as well.\n \n-'git fetch' can fetch from either a single named repository or URL,\n-or from several repositories at once if <group> is given and\n-there is a remotes.<group> entry in the configuration file.\n+`git fetch` can fetch from either a single named repository or URL,\n+or from several repositories at once if _<group>_ is given and\n+there is a `remotes.<group>` entry in the configuration file.\n (See linkgit:git-config[1]).\n \n When no remote is specified, by default the `origin` remote will be used,\n@@ -48,15 +48,15 @@ include::fetch-options.adoc[]\n \n include::pull-fetch-param.adoc[]\n \n---stdin::\n+`--stdin`::\n \tRead refspecs, one per line, from stdin in addition to those provided\n-\tas arguments. The \"tag <name>\" format is not supported.\n+\tas arguments. The \"tag _<name>_\" format is not supported.\n \n include::urls-remotes.adoc[]\n \n-\n-CONFIGURED REMOTE-TRACKING BRANCHES[[CRTB]]\n--------------------------------------------\n+[[CRTB]]\n+CONFIGURED REMOTE-TRACKING BRANCHES\n+-----------------------------------\n \n You often interact with the same remote repository by\n regularly and repeatedly fetching from it.  In order to keep track\n@@ -84,13 +84,13 @@ This configuration is used in two ways:\n \n * When `git fetch` is run with explicit branches and/or tags\n   to fetch on the command line, e.g. `git fetch origin master`, the\n-  <refspec>s given on the command line determine what are to be\n+  _<refspec>s_ given on the command line determine what are to be\n   fetched (e.g. `master` in the example,\n   which is a short-hand for `master:`, which in turn means\n-  \"fetch the 'master' branch but I do not explicitly say what\n+  \"fetch the `master` branch but I do not explicitly say what\n   remote-tracking branch to update with it from the command line\"),\n   and the example command will\n-  fetch _only_ the 'master' branch.  The `remote.<repository>.fetch`\n+  fetch _only_ the `master` branch.  The `remote.<repository>.fetch`\n   values determine which\n   remote-tracking branch, if any, is updated.  When used in this\n   way, the `remote.<repository>.fetch` values do not have any\n@@ -144,9 +144,9 @@ tracking branches that are deleted, but any local tag that doesn't\n exist on the remote.\n \n This might not be what you expect, i.e. you want to prune remote\n-`<name>`, but also explicitly fetch tags from it, so when you fetch\n+_<name>_, but also explicitly fetch tags from it, so when you fetch\n from it you delete all your local tags, most of which may not have\n-come from the `<name>` remote in the first place.\n+come from the _<name>_ remote in the first place.\n \n So be careful when using this with a refspec like\n `refs/tags/*:refs/tags/*`, or any other refspec which might map\n@@ -213,11 +213,11 @@ of the form:\n <flag> <old-object-id> <new-object-id> <local-reference>\n -------------------------------\n \n-The status of up-to-date refs is shown only if the --verbose option is\n+The status of up-to-date refs is shown only if the `--verbose` option is\n used.\n \n In compact output mode, specified with configuration variable\n-fetch.output, if either entire `<from>` or `<to>` is found in the\n+fetch.output, if either entire _<from>_ or _<to>_ is found in the\n other string, it will be substituted with `*` in the other string. For\n example, `master -> origin/master` becomes `master -> origin/*`.\n \n@@ -303,7 +303,7 @@ include::config/fetch.adoc[]\n \n BUGS\n ----\n-Using --recurse-submodules can only fetch new commits in submodules that are\n+Using `--recurse-submodules` can only fetch new commits in submodules that are\n present locally e.g. in `$GIT_DIR/modules/`. If the upstream adds a new\n submodule, that submodule cannot be fetched until it is cloned e.g. by `git\n submodule update`. This is expected to be fixed in a future Git version.\ndiff --git a/Documentation/pull-fetch-param.adoc b/Documentation/pull-fetch-param.adoc\nindex bb2cf6a462..d903dc8900 100644\n--- a/Documentation/pull-fetch-param.adoc\n+++ b/Documentation/pull-fetch-param.adoc\n@@ -1,20 +1,20 @@\n-<repository>::\n+_<repository>_::\n \tThe \"remote\" repository that is the source of a fetch\n \tor pull operation.  This parameter can be either a URL\n \t(see the section <<URLS,GIT URLS>> below) or the name\n \tof a remote (see the section <<REMOTES,REMOTES>> below).\n \n ifndef::git-pull[]\n-<group>::\n+_<group>_::\n \tA name referring to a list of repositories as the value\n-\tof remotes.<group> in the configuration file.\n+\tof `remotes.<group>` in the configuration file.\n \t(See linkgit:git-config[1]).\n endif::git-pull[]\n \n [[fetch-refspec]]\n-<refspec>::\n+_<refspec>_::\n \tSpecifies which refs to fetch and which local refs to update.\n-\tWhen no <refspec>s appear on the command line, the refs to fetch\n+\tWhen no __<refspec>__s appear on the command line, the refs to fetch\n \tare read from `remote.<repository>.fetch` variables instead\n ifndef::git-pull[]\n \t(see <<CRTB,CONFIGURED REMOTE-TRACKING BRANCHES>> below).\n@@ -24,18 +24,18 @@ ifdef::git-pull[]\n \tin linkgit:git-fetch[1]).\n endif::git-pull[]\n +\n-The format of a <refspec> parameter is an optional plus\n-`+`, followed by the source <src>, followed\n-by a colon `:`, followed by the destination <dst>.\n-The colon can be omitted when <dst> is empty.  <src> is\n+The format of a _<refspec>_ parameter is an optional plus\n+`+`, followed by the source _<src>_, followed\n+by a colon `:`, followed by the destination _<dst>_.\n+The colon can be omitted when _<dst>_ is empty.  _<src>_ is\n typically a ref, or a glob pattern with a single `*` that is used\n to match a set of refs, but it can also be a fully spelled hex object\n name.\n +\n-A <refspec> may contain a `*` in its <src> to indicate a simple pattern\n+A _<refspec>_ may contain a `*` in its _<src>_ to indicate a simple pattern\n match. Such a refspec functions like a glob that matches any ref with the\n-pattern. A pattern <refspec> must have one and only one `*` in both the <src> and\n-<dst>. It will map refs to the destination by replacing the `*` with the\n+pattern. A pattern _<refspec>_ must have one and only one `*` in both the _<src>_ and\n+_<dst>_. It will map refs to the destination by replacing the `*` with the\n contents matched from the source.\n +\n If a refspec is prefixed by `^`, it will be interpreted as a negative\n@@ -45,14 +45,14 @@ considered to match if it matches at least one positive refspec, and does\n not match any negative refspec. Negative refspecs can be useful to restrict\n the scope of a pattern refspec so that it will not include specific refs.\n Negative refspecs can themselves be pattern refspecs. However, they may only\n-contain a <src> and do not specify a <dst>. Fully spelled out hex object\n+contain a _<src>_ and do not specify a _<dst>_. Fully spelled out hex object\n names are also not supported.\n +\n `tag <tag>` means the same as `refs/tags/<tag>:refs/tags/<tag>`;\n it requests fetching everything up to the given tag.\n +\n-The remote ref that matches <src>\n-is fetched, and if <dst> is not an empty string, an attempt\n+The remote ref that matches _<src>_\n+is fetched, and if _<dst>_ is not an empty string, an attempt\n is made to update the local ref that matches it.\n +\n Whether that update is allowed without `--force` depends on the ref\n@@ -60,7 +60,7 @@ namespace it's being fetched to, the type of object being fetched, and\n whether the update is considered to be a fast-forward. Generally, the\n same rules apply for fetching as when pushing, see the `<refspec>...`\n section of linkgit:git-push[1] for what those are. Exceptions to those\n-rules particular to 'git fetch' are noted below.\n+rules particular to `git fetch` are noted below.\n +\n Until Git version 2.20, and unlike when pushing with\n linkgit:git-push[1], any updates to `refs/tags/*` would be accepted\n@@ -101,19 +101,19 @@ must know this is the expected usage pattern for a branch.\n ifdef::git-pull[]\n +\n [NOTE]\n-There is a difference between listing multiple <refspec>\n-directly on 'git pull' command line and having multiple\n+There is a difference between listing multiple _<refspec>_\n+directly on `git pull` command line and having multiple\n `remote.<repository>.fetch` entries in your configuration\n-for a <repository> and running a\n-'git pull' command without any explicit <refspec> parameters.\n-<refspec>s listed explicitly on the command line are always\n+for a _<repository>_ and running a\n+`git pull` command without any explicit _<refspec>_ parameters.\n+__<refspec>__s listed explicitly on the command line are always\n merged into the current branch after fetching.  In other words,\n-if you list more than one remote ref, 'git pull' will create\n+if you list more than one remote ref, `git pull` will create\n an Octopus merge.  On the other hand, if you do not list any\n-explicit <refspec> parameter on the command line, 'git pull'\n-will fetch all the <refspec>s it finds in the\n+explicit _<refspec>_ parameter on the command line, `git pull`\n+will fetch all the __<refspec>__s it finds in the\n `remote.<repository>.fetch` configuration and merge\n-only the first <refspec> found into the current branch.\n+only the first _<refspec>_ found into the current branch.\n This is because making an\n Octopus from remote refs is rarely done, while keeping track\n of multiple remote heads in one-go by fetching more than one\ndiff --git a/Documentation/urls-remotes.adoc b/Documentation/urls-remotes.adoc\nindex 57b1646d3e..068b3ee4a6 100644\n--- a/Documentation/urls-remotes.adoc\n+++ b/Documentation/urls-remotes.adoc\n@@ -4,7 +4,7 @@ REMOTES[[REMOTES]]\n ------------------\n \n The name of one of the following can be used instead\n-of a URL as `<repository>` argument:\n+of a URL as _<repository>_ argument:\n \n * a remote in the Git configuration file: `$GIT_DIR/config`,\n * a file in the `$GIT_DIR/remotes` directory, or\n@@ -32,8 +32,8 @@ config file would appear like this:\n \t\tfetch = <refspec>\n ------------\n \n-The `<pushurl>` is used for pushes only. It is optional and defaults\n-to `<URL>`. Pushing to a remote affects all defined pushurls or all\n+The _<pushurl>_ is used for pushes only. It is optional and defaults\n+to _<URL>_. Pushing to a remote affects all defined pushurls or all\n defined urls if no pushurls are defined. Fetch, however, will only\n fetch from the first defined url if multiple urls are defined.\n \n@@ -54,8 +54,8 @@ following format:\n \n ------------\n \n-`Push:` lines are used by 'git push' and\n-`Pull:` lines are used by 'git pull' and 'git fetch'.\n+`Push:` lines are used by `git push` and\n+`Pull:` lines are used by `git pull` and `git fetch`.\n Multiple `Push:` and `Pull:` lines may\n be specified for additional branch mappings.\n \n@@ -72,12 +72,12 @@ This file should have the following format:\n \t<URL>#<head>\n ------------\n \n-`<URL>` is required; `#<head>` is optional.\n+_<URL>_ is required; `#<head>` is optional.\n \n Depending on the operation, git will use one of the following\n refspecs, if you don't provide one on the command line.\n-`<branch>` is the name of this file in `$GIT_DIR/branches` and\n-`<head>` defaults to `master`.\n+_<branch> is the name of this file in `$GIT_DIR/branches` and\n+_<head>_ defaults to `master`.\n \n git fetch uses:\n \ndiff --git a/builtin/fetch.c b/builtin/fetch.c\nindex c7ff3480fb..74b62b1315 100644\n--- a/builtin/fetch.c\n+++ b/builtin/fetch.c\n@@ -47,7 +47,7 @@\n static const char * const builtin_fetch_usage[] = {\n \tN_(\"git fetch [<options>] [<repository> [<refspec>...]]\"),\n \tN_(\"git fetch [<options>] <group>\"),\n-\tN_(\"git fetch --multiple [<options>] [(<repository> | <group>)...]\"),\n+\tN_(\"git fetch --multiple [<options>] [(<repository>|<group>)...]\"),\n \tN_(\"git fetch --all [<options>]\"),\n \tNULL\n };\n-- \ngitgitgadget\n\n"},{"id":"531211","messageId":"6e9ea103114ae7b5d6edb1232fac9e8aa4f9afa3.1763988532.git.gitgitgadget@gmail.com","threadId":"64512","inReplyTo":"pull.2002.v2.git.1763988532.gitgitgadget@gmail.com","subject":"[PATCH v2 2/3] doc: convert git pull to synopsis style","fromName":"Jean-Noël Avila via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-11-24T12:48:51Z","receivedAt":"2025-11-24T12:49:00Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"From: =?UTF-8?q?Jean-No=C3=ABl=20Avila?= <jn.avila@free.fr>\n\n- Switch the synopsis to a synopsis block which will automatically\n  format placeholders in italics and keywords in monospace\n- Use _<placeholder>_ instead of <placeholder> in the description\n- Use `backticks` for keywords and more complex option\ndescriptions. The new rendering engine will apply synopsis rules to\nthese spans.\n\nSigned-off-by: Jean-Noël Avila <jn.avila@free.fr>\n---\n Documentation/fetch-options.adoc | 10 +++---\n Documentation/git-pull.adoc      | 61 ++++++++++++++++----------------\n Documentation/merge-options.adoc |  2 +-\n Documentation/urls-remotes.adoc  |  4 +--\n 4 files changed, 38 insertions(+), 39 deletions(-)\n\ndiff --git a/Documentation/fetch-options.adoc b/Documentation/fetch-options.adoc\nindex 35a84a1ef2..fcba46ee9e 100644\n--- a/Documentation/fetch-options.adoc\n+++ b/Documentation/fetch-options.adoc\n@@ -71,7 +71,7 @@ configuration variables documented in linkgit:git-config[1], and the\n \n `--negotiate-only`::\n \tDo not fetch anything from the server, and instead print the\n-\tancestors of the provided `--negotiation-tip=*` arguments,\n+\tancestors of the provided `--negotiation-tip=` arguments,\n \twhich we have in common with the server.\n +\n This is incompatible with `--recurse-submodules=(yes|on-demand)`.\n@@ -126,7 +126,7 @@ ifndef::git-pull[]\n `--auto-gc`::\n `--no-auto-gc`::\n \tRun `git maintenance run --auto` at the end to perform automatic\n-\trepository maintenance if needed. (`--[no-]auto-gc` is a synonym.)\n+\trepository maintenance if needed.\n \tThis is enabled by default.\n \n `--write-commit-graph`::\n@@ -193,7 +193,7 @@ endif::git-pull[]\n \tspecified refspec (can be given more than once) to map the\n \trefs to remote-tracking branches, instead of the values of\n \t`remote.<name>.fetch` configuration variables for the remote\n-\trepository.  Providing an empty `<refspec>` to the\n+\trepository.  Providing an empty _<refspec>_ to the\n \t`--refmap` option causes Git to ignore the configured\n \trefspecs and rely entirely on the refspecs supplied as\n \tcommand-line arguments. See section on \"Configured Remote-tracking\n@@ -204,7 +204,7 @@ endif::git-pull[]\n \tFetch all tags from the remote (i.e., fetch remote tags\n \t`refs/tags/*` into local tags with the same name), in addition\n \tto whatever else would otherwise be fetched.  Using this\n-\toption alone does not subject tags to pruning, even if --prune\n+\toption alone does not subject tags to pruning, even if `--prune`\n \tis used (though tags may be pruned anyway if they are also the\n \tdestination of an explicit refspec; see `--prune`).\n \n@@ -306,7 +306,7 @@ endif::git-pull[]\n `-o <option>`::\n `--server-option=<option>`::\n \tTransmit the given string to the server when communicating using\n-\tprotocol version 2.  The given string must not contain a NUL or LF\n+\tprotocol version 2.  The given string must not contain a _NUL_ or _LF_\n \tcharacter.  The server's handling of server options, including\n \tunknown ones, is server-specific.\n \tWhen multiple `--server-option=<option>` are given, they are all\ndiff --git a/Documentation/git-pull.adoc b/Documentation/git-pull.adoc\nindex cd3bbc90e3..248f6c3f39 100644\n--- a/Documentation/git-pull.adoc\n+++ b/Documentation/git-pull.adoc\n@@ -8,8 +8,8 @@ git-pull - Fetch from and integrate with another repository or a local branch\n \n SYNOPSIS\n --------\n-[verse]\n-'git pull' [<options>] [<repository> [<refspec>...]]\n+[synopsis]\n+git pull [<options>] [<repository> [<refspec>...]]\n \n \n DESCRIPTION\n@@ -43,7 +43,7 @@ want to handle, you can safely abort it with `git merge --abort` or `git\n OPTIONS\n -------\n \n-<repository>::\n+_<repository>_::\n \tThe \"remote\" repository to pull from.  This can be either\n \ta URL (see the section <<URLS,GIT URLS>> below) or the name\n \tof a remote (see the section <<REMOTES,REMOTES>> below).\n@@ -52,29 +52,29 @@ Defaults to the configured upstream for the current branch, or `origin`.\n See <<UPSTREAM-BRANCHES,UPSTREAM BRANCHES>> below for more on how to\n configure upstreams.\n \n-<refspec>::\n+_<refspec>_::\n \tWhich branch or other reference(s) to fetch and integrate into the\n \tcurrent branch, for example `main` in `git pull origin main`.\n \tDefaults to the configured upstream for the current branch.\n +\n This can be a branch, tag, or other collection of reference(s).\n-See <<fetch-refspec,<refspec>>> below under \"Options related to fetching\"\n+See <<fetch-refspec,_<refspec>_>> below under \"Options related to fetching\"\n for the full syntax, and <<DEFAULT-BEHAVIOUR,DEFAULT BEHAVIOUR>> below\n for how `git pull` uses this argument to determine which remote branch\n to integrate.\n \n--q::\n---quiet::\n+`-q`::\n+`--quiet`::\n \tThis is passed to both underlying git-fetch to squelch reporting of\n \tduring transfer, and underlying git-merge to squelch output during\n \tmerging.\n \n--v::\n---verbose::\n-\tPass --verbose to git-fetch and git-merge.\n+`-v`::\n+`--verbose`::\n+\tPass `--verbose` to git-fetch and git-merge.\n \n---recurse-submodules[=(yes|on-demand|no)]::\n---no-recurse-submodules::\n+`--recurse-submodules[=(yes|on-demand|no)]`::\n+`--no-recurse-submodules`::\n \tThis option controls if new commits of populated submodules should\n \tbe fetched, and if the working trees of active submodules should be\n \tupdated, too (see linkgit:git-fetch[1], linkgit:git-config[1] and\n@@ -91,21 +91,20 @@ Options related to merging\n \n include::merge-options.adoc[]\n \n--r::\n---rebase[=(false|true|merges|interactive)]::\n-\tWhen true, rebase the current branch on top of the upstream\n+`-r`::\n+`--rebase[=(true|merges|false|interactive)]`::\n+`true`;; rebase the current branch on top of the upstream\n \tbranch after fetching. If there is a remote-tracking branch\n \tcorresponding to the upstream branch and the upstream branch\n \twas rebased since last fetched, the rebase uses that information\n-\tto avoid rebasing non-local changes.\n-+\n-When set to `merges`, rebase using `git rebase --rebase-merges` so that\n+\tto avoid rebasing non-local changes. This is the default.\n+\n+`merges`;; rebase using `git rebase --rebase-merges` so that\n the local merge commits are included in the rebase (see\n linkgit:git-rebase[1] for details).\n-+\n-When false, merge the upstream branch into the current branch.\n-+\n-When `interactive`, enable the interactive mode of rebase.\n+`false`;; merge the upstream branch into the current branch.\n+`interactive`;; enable the interactive mode of rebase.\n+\n +\n See `pull.rebase`, `branch.<name>.rebase` and `branch.autoSetupRebase` in\n linkgit:git-config[1] if you want to make `git pull` always use\n@@ -117,8 +116,8 @@ It rewrites history, which does not bode well when you\n published that history already.  Do *not* use this option\n unless you have read linkgit:git-rebase[1] carefully.\n \n---no-rebase::\n-\tThis is shorthand for --rebase=false.\n+`--no-rebase`::\n+\tThis is shorthand for `--rebase=false`.\n \n Options related to fetching\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~\n@@ -178,7 +177,7 @@ uses the refspec from the configuration or\n rules apply:\n \n . If `branch.<name>.merge` configuration for the current\n-  branch `<name>` exists, that is the name of the branch at the\n+  branch _<name>_ exists, that is the name of the branch at the\n   remote site that is merged.\n \n . If the refspec is a globbing one, nothing is merged.\n@@ -198,9 +197,9 @@ $ git pull\n $ git pull origin\n ------------------------------------------------\n +\n-Normally the branch merged in is the HEAD of the remote repository,\n-but the choice is determined by the branch.<name>.remote and\n-branch.<name>.merge options; see linkgit:git-config[1] for details.\n+Normally the branch merged in is the `HEAD` of the remote repository,\n+but the choice is determined by the `branch.<name>.remote` and\n+`branch.<name>.merge` options; see linkgit:git-config[1] for details.\n \n * Merge into the current branch the remote branch `next`:\n +\n@@ -208,7 +207,7 @@ branch.<name>.merge options; see linkgit:git-config[1] for details.\n $ git pull origin next\n ------------------------------------------------\n +\n-This leaves a copy of `next` temporarily in FETCH_HEAD, and\n+This leaves a copy of `next` temporarily in `FETCH_HEAD`, and\n updates the remote-tracking branch `origin/next`.\n The same can be done by invoking fetch and merge:\n +\n@@ -219,14 +218,14 @@ $ git merge origin/next\n \n \n If you tried a pull which resulted in complex conflicts and\n-would want to start over, you can recover with 'git reset'.\n+would want to start over, you can recover with `git reset`.\n \n \n include::transfer-data-leaks.adoc[]\n \n BUGS\n ----\n-Using --recurse-submodules can only fetch new commits in already checked\n+Using `--recurse-submodules` can only fetch new commits in already checked\n out submodules right now. When e.g. upstream added a new submodule in the\n just fetched commits of the superproject the submodule itself cannot be\n fetched, making it impossible to check out that submodule later without\ndiff --git a/Documentation/merge-options.adoc b/Documentation/merge-options.adoc\nindex 9d433265b2..952cb85e9a 100644\n--- a/Documentation/merge-options.adoc\n+++ b/Documentation/merge-options.adoc\n@@ -56,7 +56,7 @@ ifdef::git-pull[]\n `--ff-only`::\n \tOnly update to the new history if there is no divergent local\n \thistory.  This is the default when no method for reconciling\n-\tdivergent histories is provided (via the --rebase=* flags).\n+\tdivergent histories is provided (via the `--rebase` flags).\n \n `--ff`::\n `--no-ff`::\ndiff --git a/Documentation/urls-remotes.adoc b/Documentation/urls-remotes.adoc\nindex 068b3ee4a6..6878bbe093 100644\n--- a/Documentation/urls-remotes.adoc\n+++ b/Documentation/urls-remotes.adoc\n@@ -76,7 +76,7 @@ _<URL>_ is required; `#<head>` is optional.\n \n Depending on the operation, git will use one of the following\n refspecs, if you don't provide one on the command line.\n-_<branch> is the name of this file in `$GIT_DIR/branches` and\n+_<branch>_ is the name of this file in `$GIT_DIR/branches` and\n _<head>_ defaults to `master`.\n \n git fetch uses:\n@@ -111,7 +111,7 @@ Git defaults to using the upstream branch for remote operations, for example:\n   'origin/main' have diverged, and have 2 and 3 different commits each\n   respectively\".\n \n-The upstream is stored in `.git/config`, in the \"remote\" and \"merge\"\n+The upstream is stored in `.git/config`, in the \"`remote`\" and \"`merge`\"\n fields. For example, if `main`'s upstream is `origin/main`:\n \n ------------\n-- \ngitgitgadget\n\n"},{"id":"531212","messageId":"9c70b341bb1c20313640797e0a115705a69d251a.1763988532.git.gitgitgadget@gmail.com","threadId":"64512","inReplyTo":"pull.2002.v2.git.1763988532.gitgitgadget@gmail.com","subject":"[PATCH v2 3/3] doc: convert git push to synopsis style","fromName":"Jean-Noël Avila via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-11-24T12:48:52Z","receivedAt":"2025-11-24T12:49:02Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"From: =?UTF-8?q?Jean-No=C3=ABl=20Avila?= <jn.avila@free.fr>\n\n- Switch the synopsis to a synopsis block which will automatically\n  format placeholders in italics and keywords in monospace\n- Use _<placeholder>_ instead of <placeholder> in the description\n- Use `backticks` for keywords and more complex option\ndescriptions. The new rendering engine will apply synopsis rules to\nthese spans.\n\nSigned-off-by: Jean-Noël Avila <jn.avila@free.fr>\n---\n Documentation/config/push.adoc | 113 +++++++-------\n Documentation/git-push.adoc    | 267 ++++++++++++++++++---------------\n 2 files changed, 201 insertions(+), 179 deletions(-)\n\ndiff --git a/Documentation/config/push.adoc b/Documentation/config/push.adoc\nindex 0acbbea18a..d9112b2260 100644\n--- a/Documentation/config/push.adoc\n+++ b/Documentation/config/push.adoc\n@@ -1,15 +1,15 @@\n-push.autoSetupRemote::\n-\tIf set to \"true\" assume `--set-upstream` on default push when no\n+`push.autoSetupRemote`::\n+\tIf set to `true` assume `--set-upstream` on default push when no\n \tupstream tracking exists for the current branch; this option\n-\ttakes effect with push.default options 'simple', 'upstream',\n-\tand 'current'. It is useful if by default you want new branches\n+\ttakes effect with `push.default` options `simple`, `upstream`,\n+\tand `current`. It is useful if by default you want new branches\n \tto be pushed to the default remote (like the behavior of\n-\t'push.default=current') and you also want the upstream tracking\n+\t`push.default=current`) and you also want the upstream tracking\n \tto be set. Workflows most likely to benefit from this option are\n-\t'simple' central workflows where all branches are expected to\n+\t`simple` central workflows where all branches are expected to\n \thave the same name on the remote.\n \n-push.default::\n+`push.default`::\n \tDefines the action `git push` should take if no refspec is\n \tgiven (whether from the command-line, config, or elsewhere).\n \tDifferent values are well-suited for\n@@ -18,24 +18,28 @@ push.default::\n \t`upstream` is probably what you want.  Possible values are:\n +\n --\n-\n-* `nothing` - do not push anything (error out) unless a refspec is\n-  given. This is primarily meant for people who want to\n-  avoid mistakes by always being explicit.\n-\n-* `current` - push the current branch to update a branch with the same\n-  name on the receiving end.  Works in both central and non-central\n-  workflows.\n-\n-* `upstream` - push the current branch back to the branch whose\n-  changes are usually integrated into the current branch (which is\n-  called `@{upstream}`).  This mode only makes sense if you are\n-  pushing to the same repository you would normally pull from\n-  (i.e. central workflow).\n-\n-* `tracking` - This is a deprecated synonym for `upstream`.\n-\n-* `simple` - push the current branch with the same name on the remote.\n+`nothing`;;\n+do not push anything (error out) unless a refspec is\n+given. This is primarily meant for people who want to\n+avoid mistakes by always being explicit.\n+\n+`current`;;\n+push the current branch to update a branch with the same\n+name on the receiving end.  Works in both central and non-central\n+workflows.\n+\n+`upstream`;;\n+push the current branch back to the branch whose\n+changes are usually integrated into the current branch (which is\n+called `@{upstream}`).  This mode only makes sense if you are\n+pushing to the same repository you would normally pull from\n+(i.e. central workflow).\n+\n+`tracking`;;\n+this is a deprecated synonym for `upstream`.\n+\n+`simple`;;\n+push the current branch with the same name on the remote.\n +\n If you are working on a centralized workflow (pushing to the same repository you\n pull from, which is typically `origin`), then you need to configure an upstream\n@@ -44,16 +48,17 @@ branch with the same name.\n This mode is the default since Git 2.0, and is the safest option suited for\n beginners.\n \n-* `matching` - push all branches having the same name on both ends.\n-  This makes the repository you are pushing to remember the set of\n-  branches that will be pushed out (e.g. if you always push 'maint'\n-  and 'master' there and no other branches, the repository you push\n-  to will have these two branches, and your local 'maint' and\n-  'master' will be pushed there).\n+`matching`;;\n+push all branches having the same name on both ends.\n+This makes the repository you are pushing to remember the set of\n+branches that will be pushed out (e.g. if you always push `maint`\n+and `master` there and no other branches, the repository you push\n+to will have these two branches, and your local `maint` and\n+`master` will be pushed there).\n +\n To use this mode effectively, you have to make sure _all_ the\n branches you would push out are ready to be pushed out before\n-running 'git push', as the whole point of this mode is to allow you\n+running `git push`, as the whole point of this mode is to allow you\n to push all of the branches in one go.  If you usually finish work\n on only one branch and push out the result, while other branches are\n unfinished, this mode is not for you.  Also this mode is not\n@@ -66,24 +71,24 @@ new default).\n \n --\n \n-push.followTags::\n+`push.followTags`::\n \tIf set to true, enable `--follow-tags` option by default.  You\n \tmay override this configuration at time of push by specifying\n \t`--no-follow-tags`.\n \n-push.gpgSign::\n-\tMay be set to a boolean value, or the string 'if-asked'. A true\n+`push.gpgSign`::\n+\tMay be set to a boolean value, or the string `if-asked`. A true\n \tvalue causes all pushes to be GPG signed, as if `--signed` is\n-\tpassed to linkgit:git-push[1]. The string 'if-asked' causes\n+\tpassed to linkgit:git-push[1]. The string `if-asked` causes\n \tpushes to be signed if the server supports it, as if\n-\t`--signed=if-asked` is passed to 'git push'. A false value may\n+\t`--signed=if-asked` is passed to `git push`. A false value may\n \toverride a value from a lower-priority config file. An explicit\n \tcommand-line flag always overrides this config option.\n \n-push.pushOption::\n+`push.pushOption`::\n \tWhen no `--push-option=<option>` argument is given from the\n-\tcommand line, `git push` behaves as if each <value> of\n-\tthis variable is given as `--push-option=<value>`.\n+\tcommand line, `git push` behaves as if each _<option>_ of\n+\tthis variable is given as `--push-option=<option>`.\n +\n This is a multi-valued variable, and an empty value can be used in a\n higher priority configuration file (e.g. `.git/config` in a\n@@ -109,26 +114,26 @@ This will result in only b (a and c are cleared).\n \n ----\n \n-push.recurseSubmodules::\n-\tMay be \"check\", \"on-demand\", \"only\", or \"no\", with the same behavior\n-\tas that of \"push --recurse-submodules\".\n-\tIf not set, 'no' is used by default, unless 'submodule.recurse' is\n-\tset (in which case a 'true' value means 'on-demand').\n+`push.recurseSubmodules`::\n+\tMay be `check`, `on-demand`, `only`, or `no`, with the same behavior\n+\tas that of `push --recurse-submodules`.\n+\tIf not set, `no` is used by default, unless `submodule.recurse` is\n+\tset (in which case a `true` value means `on-demand`).\n \n-push.useForceIfIncludes::\n-\tIf set to \"true\", it is equivalent to specifying\n+`push.useForceIfIncludes`::\n+\tIf set to `true`, it is equivalent to specifying\n \t`--force-if-includes` as an option to linkgit:git-push[1]\n \tin the command line. Adding `--no-force-if-includes` at the\n \ttime of push overrides this configuration setting.\n \n-push.negotiate::\n-\tIf set to \"true\", attempt to reduce the size of the packfile\n+`push.negotiate`::\n+\tIf set to `true`, attempt to reduce the size of the packfile\n \tsent by rounds of negotiation in which the client and the\n-\tserver attempt to find commits in common. If \"false\", Git will\n+\tserver attempt to find commits in common. If `false`, Git will\n \trely solely on the server's ref advertisement to find commits\n \tin common.\n \n-push.useBitmaps::\n-\tIf set to \"false\", disable use of bitmaps for \"git push\" even if\n-\t`pack.useBitmaps` is \"true\", without preventing other git operations\n-\tfrom using bitmaps. Default is true.\n+`push.useBitmaps`::\n+\tIf set to `false`, disable use of bitmaps for `git push` even if\n+\t`pack.useBitmaps` is `true`, without preventing other git operations\n+\tfrom using bitmaps. Default is `true`.\ndiff --git a/Documentation/git-push.adoc b/Documentation/git-push.adoc\nindex 864b0d0467..e5ba3a6742 100644\n--- a/Documentation/git-push.adoc\n+++ b/Documentation/git-push.adoc\n@@ -8,13 +8,13 @@ git-push - Update remote refs along with associated objects\n \n SYNOPSIS\n --------\n-[verse]\n-'git push' [--all | --branches | --mirror | --tags] [--follow-tags] [--atomic] [-n | --dry-run] [--receive-pack=<git-receive-pack>]\n-\t   [--repo=<repository>] [-f | --force] [-d | --delete] [--prune] [-q | --quiet] [-v | --verbose]\n-\t   [-u | --set-upstream] [-o <string> | --push-option=<string>]\n-\t   [--[no-]signed|--signed=(true|false|if-asked)]\n-\t   [--force-with-lease[=<refname>[:<expect>]] [--force-if-includes]]\n-\t   [--no-verify] [<repository> [<refspec>...]]\n+[synopsis]\n+git push [--all | --branches | --mirror | --tags] [--follow-tags] [--atomic] [-n | --dry-run] [--receive-pack=<git-receive-pack>]\n+\t [--repo=<repository>] [-f | --force] [-d | --delete] [--prune] [-q | --quiet] [-v | --verbose]\n+\t [-u | --set-upstream] [-o <string> | --push-option=<string>]\n+\t [--[no-]signed | --signed=(true|false|if-asked)]\n+\t [--force-with-lease[=<refname>[:<expect>]] [--force-if-includes]]\n+\t [--no-verify] [<repository> [<refspec>...]]\n \n DESCRIPTION\n -----------\n@@ -35,7 +35,7 @@ To decide which branches, tags, or other refs to push, Git uses\n \n 1. The `<refspec>` argument(s) (for example `main` in `git push origin main`)\n    or the `--all`, `--mirror`, or `--tags` options\n-2. The `remote.*.push` configuration for the repository being pushed to\n+2. The `remote.<name>.push` configuration for the repository being pushed to\n 3. The `push.default` configuration. The default is `push.default=simple`,\n    which will push to a branch with the same name as the current branch.\n    See the <<CONFIGURATION,CONFIGURATION>> section below for more on `push.default`.\n@@ -49,25 +49,25 @@ You can make interesting things happen to a repository\n every time you push into it, by setting up 'hooks' there.  See\n documentation for linkgit:git-receive-pack[1].\n \n-\n-OPTIONS[[OPTIONS]]\n-------------------\n-<repository>::\n+[[OPTIONS]]\n+OPTIONS\n+-------\n+_<repository>_::\n \tThe \"remote\" repository that is the destination of a push\n \toperation.  This parameter can be either a URL\n \t(see the section <<URLS,GIT URLS>> below) or the name\n \tof a remote (see the section <<REMOTES,REMOTES>> below).\n \n-<refspec>...::\n+`<refspec>...`::\n \tSpecify what destination ref to update with what source object.\n +\n-The format for a refspec is [+]<src>[:<dst>], for example `main`,\n+The format for a refspec is `[+]<src>[:<dst>]`, for example `main`,\n `main:other`, or `HEAD^:refs/heads/main`.\n +\n-The `<src>` is often the name of the local branch to push, but it can be\n+The _<src>_ is often the name of the local branch to push, but it can be\n any arbitrary \"SHA-1 expression\" (see linkgit:gitrevisions[7]).\n +\n-The `<dst>` determines what ref to update on the remote side. It must be the\n+The _<dst>_ determines what ref to update on the remote side. It must be the\n name of a branch, tag, or other ref, not an arbitrary expression.\n +\n The `+` is optional and does the same thing as `--force`.\n@@ -78,23 +78,23 @@ and destination, or with a shorter form (for example `main` or\n `main:other`). Here are the rules for how refspecs are expanded,\n as well as various other special refspec forms:\n +\n- *  `<src>` without a `:<dst>` means to update the same ref as the\n-    `<src>`, unless the `remote.<repository>.push` configuration specifies a\n-    different <dst>. For example, if `main` is a branch, then the refspec\n+ *  _<src>_ without a `:<dst>` means to update the same ref as the\n+    _<src>_, unless the `remote.<repository>.push` configuration specifies a\n+    different _<dst>_. For example, if `main` is a branch, then the refspec\n     `main` expands to `main:refs/heads/main`.\n- *  If `<dst>` unambiguously refers to a ref on the <repository> remote,\n+ *  If _<dst>_ unambiguously refers to a ref on the <repository> remote,\n     then expand it to that ref. For example, if `v1.0` is a tag on the\n     remote, then `HEAD:v1.0` expands to `HEAD:refs/tags/v1.0`.\n- *  If `<src>` resolves to a ref starting with `refs/heads/` or `refs/tags/`,\n+ *  If _<src>_ resolves to a ref starting with `refs/heads/` or `refs/tags/`,\n     then prepend that to <dst>. For example, if `main` is a branch, then\n     `main:other` expands to `main:refs/heads/other`\n  *  The special refspec `:` (or `+:` to allow non-fast-forward updates)\n     directs Git to push \"matching\" branches: for every branch that exists on\n     the local side, the remote side is updated if a branch of the same name\n     already exists on the remote side.\n- *  <src> may contain a * to indicate a simple pattern match.\n+ *  _<src>_ may contain a `*` to indicate a simple pattern match.\n     This works like a glob that matches any ref matching the pattern.\n-    There must be only one * in both the `<src>` and `<dst>`.\n+    There must be only one `*` in both the `<src>` and `<dst>`.\n     It will map refs to the destination by replacing the * with the\n     contents matched from the source. For example, `refs/heads/*:refs/heads/*`\n     will push all branches.\n@@ -102,11 +102,11 @@ as well as various other special refspec forms:\n     This specifies refs to exclude. A ref will be considered to\n     match if it matches at least one positive refspec, and does not\n     match any negative refspec. Negative refspecs can be pattern refspecs.\n-    They must only contain a `<src>`.\n+    They must only contain a _<src>_.\n     Fully spelled out hex object names are also not supported.\n     For example, `git push origin 'refs/heads/*' '^refs/heads/dev-*'`\n     will push all branches except for those starting with `dev-`\n- *  If `<src>` is empty, it deletes the `<dst>` ref from the remote\n+ *  If _<src>_ is empty, it deletes the _<dst>_ ref from the remote\n     repository. For example, `git push origin :dev` will\n     delete the `dev` branch.\n  *  `tag <tag>` expands to `refs/tags/<tag>:refs/tags/<tag>`.\n@@ -121,12 +121,12 @@ as well as various other special refspec forms:\n \n Not all updates are allowed: see PUSH RULES below for the details.\n \n---all::\n---branches::\n+`--all`::\n+`--branches`::\n \tPush all branches (i.e. refs under `refs/heads/`); cannot be\n \tused with other <refspec>.\n \n---prune::\n+`--prune`::\n \tRemove remote branches that don't have a local counterpart. For example\n \ta remote branch `tmp` will be removed if a local branch with the same\n \tname doesn't exist any more. This also respects refspecs, e.g.\n@@ -134,7 +134,7 @@ Not all updates are allowed: see PUSH RULES below for the details.\n \tmake sure that remote `refs/tmp/foo` will be removed if `refs/heads/foo`\n \tdoesn't exist.\n \n---mirror::\n+`--mirror`::\n \tInstead of naming each ref to push, specifies that all\n \trefs under `refs/` (which includes but is not\n \tlimited to `refs/heads/`, `refs/remotes/`, and `refs/tags/`)\n@@ -145,26 +145,26 @@ Not all updates are allowed: see PUSH RULES below for the details.\n \tif the configuration option `remote.<remote>.mirror` is\n \tset.\n \n--n::\n---dry-run::\n+`-n`::\n+`--dry-run`::\n \tDo everything except actually send the updates.\n \n---porcelain::\n+`--porcelain`::\n \tProduce machine-readable output.  The output status line for each ref\n \twill be tab-separated and sent to stdout instead of stderr.  The full\n \tsymbolic names of the refs will be given.\n \n--d::\n---delete::\n+`-d`::\n+`--delete`::\n \tAll listed refs are deleted from the remote repository. This is\n \tthe same as prefixing all refs with a colon.\n \n---tags::\n+`--tags`::\n \tAll refs under `refs/tags` are pushed, in\n \taddition to refspecs explicitly listed on the command\n \tline.\n \n---follow-tags::\n+`--follow-tags`::\n \tPush all the refs that would be pushed without this option,\n \tand also push annotated tags in `refs/tags` that are missing\n \tfrom the remote but are pointing at commit-ish that are\n@@ -172,29 +172,34 @@ Not all updates are allowed: see PUSH RULES below for the details.\n \twith configuration variable `push.followTags`.  For more\n \tinformation, see `push.followTags` in linkgit:git-config[1].\n \n---signed::\n---no-signed::\n---signed=(true|false|if-asked)::\n+`--signed`::\n+`--no-signed`::\n+`--signed=(true|false|if-asked)`::\n \tGPG-sign the push request to update refs on the receiving\n \tside, to allow it to be checked by the hooks and/or be\n-\tlogged.  If `false` or `--no-signed`, no signing will be\n-\tattempted.  If `true` or `--signed`, the push will fail if the\n-\tserver does not support signed pushes.  If set to `if-asked`,\n-\tsign if and only if the server supports signed pushes.  The push\n-\twill also fail if the actual call to `gpg --sign` fails.  See\n-\tlinkgit:git-receive-pack[1] for the details on the receiving end.\n-\n---atomic::\n---no-atomic::\n+\tlogged. Possible values are:\n+`false`;;\n+`--no-signed`;;\n+no signing will be attempted.\n+`true`;;\n+`--signed`;;\n+the push will fail if the server does not support signed pushes.\n+`if-asked`;;\n+sign if and only if the server supports signed pushes.  The push\n+will also fail if the actual call to `gpg --sign` fails.  See\n+linkgit:git-receive-pack[1] for the details on the receiving end.\n+\n+`--atomic`::\n+`--no-atomic`::\n \tUse an atomic transaction on the remote side if available.\n \tEither all refs are updated, or on error, no refs are updated.\n \tIf the server does not support atomic pushes the push will fail.\n \n--o <option>::\n---push-option=<option>::\n+`-o <option>`::\n+`--push-option=<option>`::\n \tTransmit the given string to the server, which passes them to\n \tthe pre-receive as well as the post-receive hook. The given string\n-\tmust not contain a NUL or LF character.\n+\tmust not contain a _NUL_ or _LF_ character.\n \tWhen multiple `--push-option=<option>` are given, they are\n \tall sent to the other side in the order listed on the\n \tcommand line.\n@@ -202,22 +207,22 @@ Not all updates are allowed: see PUSH RULES below for the details.\n \tline, the values of configuration variable `push.pushOption`\n \tare used instead.\n \n---receive-pack=<git-receive-pack>::\n---exec=<git-receive-pack>::\n+`--receive-pack=<git-receive-pack>`::\n+`--exec=<git-receive-pack>`::\n \tPath to the 'git-receive-pack' program on the remote\n \tend.  Sometimes useful when pushing to a remote\n \trepository over ssh, and you do not have the program in\n-\ta directory on the default $PATH.\n+\ta directory on the default `$PATH`.\n \n---force-with-lease::\n---no-force-with-lease::\n---force-with-lease=<refname>::\n---force-with-lease=<refname>:<expect>::\n-\tUsually, \"git push\" refuses to update a remote ref that is\n+`--force-with-lease`::\n+`--no-force-with-lease`::\n+`--force-with-lease=<refname>`::\n+`--force-with-lease=<refname>:<expect>`::\n+\tUsually, `git push` refuses to update a remote ref that is\n \tnot an ancestor of the local ref used to overwrite it.\n +\n This option overrides this restriction if the current value of the\n-remote ref is the expected value.  \"git push\" fails otherwise.\n+remote ref is the expected value.  `git push` fails otherwise.\n +\n Imagine that you have to rebase what you have already published.\n You will have to bypass the \"must fast-forward\" rule in order to\n@@ -239,16 +244,16 @@ current value to be the same as the remote-tracking branch we have\n for them.\n +\n `--force-with-lease=<refname>`, without specifying the expected value, will\n-protect the named ref (alone), if it is going to be updated, by\n+protect _<refname>_ (alone), if it is going to be updated, by\n requiring its current value to be the same as the remote-tracking\n branch we have for it.\n +\n-`--force-with-lease=<refname>:<expect>` will protect the named ref (alone),\n+`--force-with-lease=<refname>:<expect>` will protect _<refname>_ (alone),\n if it is going to be updated, by requiring its current value to be\n-the same as the specified value `<expect>` (which is allowed to be\n+the same as the specified value _<expect>_ (which is allowed to be\n different from the remote-tracking branch we have for the refname,\n or we do not even have to have such a remote-tracking branch when\n-this form is used).  If `<expect>` is the empty string, then the named ref\n+this form is used).  If _<expect>_ is the empty string, then the named ref\n must not already exist.\n +\n Note that all forms other than `--force-with-lease=<refname>:<expect>`\n@@ -256,7 +261,7 @@ that specifies the expected current value of the ref explicitly are\n still experimental and their semantics may change as we gain experience\n with this feature.\n +\n-\"--no-force-with-lease\" will cancel all the previous --force-with-lease on the\n+`--no-force-with-lease` will cancel all the previous `--force-with-lease` on the\n command line.\n +\n A general note on safety: supplying this option without an expected\n@@ -276,23 +281,29 @@ If your editor or some other system is running `git fetch` in the\n background for you a way to mitigate this is to simply set up another\n remote:\n +\n-\tgit remote add origin-push $(git config remote.origin.url)\n-\tgit fetch origin-push\n+----\n+git remote add origin-push $(git config remote.origin.url)\n+git fetch origin-push\n+----\n +\n Now when the background process runs `git fetch origin` the references\n on `origin-push` won't be updated, and thus commands like:\n +\n-\tgit push --force-with-lease origin-push\n+----\n+git push --force-with-lease origin-push\n+----\n +\n Will fail unless you manually run `git fetch origin-push`. This method\n is of course entirely defeated by something that runs `git fetch\n --all`, in that case you'd need to either disable it or do something\n more tedious like:\n +\n-\tgit fetch              # update 'master' from remote\n-\tgit tag base master    # mark our base point\n-\tgit rebase -i master   # rewrite some commits\n-\tgit push --force-with-lease=master:base master:master\n+----\n+git fetch              # update 'master' from remote\n+git tag base master    # mark our base point\n+git rebase -i master   # rewrite some commits\n+git push --force-with-lease=master:base master:master\n+----\n +\n I.e. create a `base` tag for versions of the upstream code that you've\n seen and are willing to overwrite, then rewrite history, and finally\n@@ -308,26 +319,26 @@ verify if updates from the remote-tracking refs that may have been\n implicitly updated in the background are integrated locally before\n allowing a forced update.\n \n--f::\n---force::\n+`-f`::\n+`--force`::\n \tUsually, `git push` will refuse to update a branch that is not an\n \tancestor of the commit being pushed.\n +\n This flag disables that check, the other safety checks in PUSH RULES\n-below, and the checks in --force-with-lease. It can cause the remote\n+below, and the checks in `--force-with-lease`. It can cause the remote\n repository to lose commits; use it with care.\n +\n Note that `--force` applies to all the refs that are pushed, hence\n using it with `push.default` set to `matching` or with multiple push\n-destinations configured with `remote.*.push` may overwrite refs\n+destinations configured with `remote.<name>.push` may overwrite refs\n other than the current branch (including local refs that are\n strictly behind their remote counterpart).  To force a push to only\n one branch, use a `+` in front of the refspec to push (e.g `git push\n origin +master` to force a push to the `master` branch). See the\n `<refspec>...` section above for details.\n \n---force-if-includes::\n---no-force-if-includes::\n+`--force-if-includes`::\n+`--no-force-if-includes`::\n \tForce an update only if the tip of the remote-tracking ref\n \thas been integrated locally.\n +\n@@ -343,72 +354,78 @@ a \"no-op\".\n +\n Specifying `--no-force-if-includes` disables this behavior.\n \n---repo=<repository>::\n-\tThis option is equivalent to the <repository> argument. If both\n+`--repo=<repository>`::\n+\tThis option is equivalent to the _<repository>_ argument. If both\n \tare specified, the command-line argument takes precedence.\n \n--u::\n---set-upstream::\n+`-u`::\n+`--set-upstream`::\n \tFor every branch that is up to date or successfully pushed, add\n \tupstream (tracking) reference, used by argument-less\n \tlinkgit:git-pull[1] and other commands. For more information,\n \tsee `branch.<name>.merge` in linkgit:git-config[1].\n \n---thin::\n---no-thin::\n+`--thin`::\n+`--no-thin`::\n \tThese options are passed to linkgit:git-send-pack[1]. A thin transfer\n \tsignificantly reduces the amount of sent data when the sender and\n \treceiver share many of the same objects in common. The default is\n \t`--thin`.\n \n--q::\n---quiet::\n+`-q`::\n+`--quiet`::\n \tSuppress all output, including the listing of updated refs,\n \tunless an error occurs. Progress is not reported to the standard\n \terror stream.\n \n--v::\n---verbose::\n+`-v`::\n+`--verbose`::\n \tRun verbosely.\n \n---progress::\n+`--progress`::\n \tProgress status is reported on the standard error stream\n-\tby default when it is attached to a terminal, unless -q\n+\tby default when it is attached to a terminal, unless `-q`\n \tis specified. This flag forces progress status even if the\n \tstandard error stream is not directed to a terminal.\n \n---no-recurse-submodules::\n---recurse-submodules=check|on-demand|only|no::\n+`--no-recurse-submodules`::\n+`--recurse-submodules=(check|on-demand|only|no)`::\n \tMay be used to make sure all submodule commits used by the\n \trevisions to be pushed are available on a remote-tracking branch.\n-\tIf 'check' is used Git will verify that all submodule commits that\n+\tPossible values are:\n+`check`;;\n+        Git will verify that all submodule commits that\n \tchanged in the revisions to be pushed are available on at least one\n \tremote of the submodule. If any commits are missing the push will\n-\tbe aborted and exit with non-zero status. If 'on-demand' is used\n+\tbe aborted and exit with non-zero status.\n+`on-demand`;;\n \tall submodules that changed in the revisions to be pushed will be\n-\tpushed. If on-demand was not able to push all necessary revisions it will\n-\talso be aborted and exit with non-zero status. If 'only' is used all\n-\tsubmodules will be pushed while the superproject is left\n-\tunpushed. A value of 'no' or using `--no-recurse-submodules` can be used\n-\tto override the push.recurseSubmodules configuration variable when no\n-\tsubmodule recursion is required.\n-+\n-When using 'on-demand' or 'only', if a submodule has a\n-\"push.recurseSubmodules={on-demand,only}\" or \"submodule.recurse\" configuration,\n-further recursion will occur. In this case, \"only\" is treated as \"on-demand\".\n-\n---verify::\n---no-verify::\n+\tpushed. If `on-demand` was not able to push all necessary revisions it will\n+\talso be aborted and exit with non-zero status.\n+`only`;;\n+\tall submodules will be pushed while the superproject is left\n+\tunpushed.\n+`no`;;\n+\toverride the `push.recurseSubmodules` configuration variable when no\n+\tsubmodule recursion is required. Similar to using `--no-recurse-submodules`.\n+\n++\n+When using `on-demand` or `only`, if a submodule has a\n+`push.recurseSubmodules=(on-demand|only)` or `submodule.recurse` configuration,\n+further recursion will occur. In this case, `only` is treated as `on-demand`.\n+\n+`--verify`::\n+`--no-verify`::\n \tToggle the pre-push hook (see linkgit:githooks[5]).  The\n-\tdefault is --verify, giving the hook a chance to prevent the\n-\tpush.  With --no-verify, the hook is bypassed completely.\n+\tdefault is `--verify`, giving the hook a chance to prevent the\n+\tpush.  With `--no-verify`, the hook is bypassed completely.\n \n--4::\n---ipv4::\n+`-4`::\n+`--ipv4`::\n \tUse IPv4 addresses only, ignoring IPv6 addresses.\n \n--6::\n---ipv6::\n+`-6`::\n+`--ipv6`::\n \tUse IPv6 addresses only, ignoring IPv4 addresses.\n \n include::urls-remotes.adoc[]\n@@ -427,16 +444,16 @@ representing the status of a single ref. Each line is of the form:\n  <flag> <summary> <from> -> <to> (<reason>)\n -------------------------------\n \n-If --porcelain is used, then each line of the output is of the form:\n+If `--porcelain` is used, then each line of the output is of the form:\n \n -------------------------------\n  <flag> \\t <from>:<to> \\t <summary> (<reason>)\n -------------------------------\n \n-The status of up-to-date refs is shown only if --porcelain or --verbose\n+The status of up-to-date refs is shown only if `--porcelain` or `--verbose`\n option is used.\n \n-flag::\n+_<flag>_::\n \tA single character indicating the status of the ref:\n (space);; for a successfully pushed fast-forward;\n `+`;; for a successful forced update;\n@@ -445,7 +462,7 @@ flag::\n `!`;; for a ref that was rejected or failed to push; and\n `=`;; for a ref that was up to date and did not need pushing.\n \n-summary::\n+_<summary>_::\n \tFor a successfully pushed ref, the summary shows the old and new\n \tvalues of the ref in a form suitable for using as an argument to\n \t`git log` (this is `<old>..<new>` in most cases, and\n@@ -586,7 +603,7 @@ Updating A with the resulting merge commit will fast-forward and your\n push will be accepted.\n \n Alternatively, you can rebase your change between X and B on top of A,\n-with \"git pull --rebase\", and push the result back.  The rebase will\n+with `git pull --rebase`, and push the result back.  The rebase will\n create a new commit D that builds the change between X and B on top of\n A.\n \n@@ -604,12 +621,12 @@ accepted.\n There is another common situation where you may encounter non-fast-forward\n rejection when you try to push, and it is possible even when you are\n pushing into a repository nobody else pushes into. After you push commit\n-A yourself (in the first picture in this section), replace it with \"git\n-commit --amend\" to produce commit B, and you try to push it out, because\n+A yourself (in the first picture in this section), replace it with `git\n+commit --amend` to produce commit B, and you try to push it out, because\n forgot that you have pushed A out already. In such a case, and only if\n you are certain that nobody in the meantime fetched your earlier commit A\n-(and started building on top of it), you can run \"git push --force\" to\n-overwrite it. In other words, \"git push --force\" is a method reserved for\n+(and started building on top of it), you can run `git push --force` to\n+overwrite it. In other words, `git push --force` is a method reserved for\n a case where you do mean to lose history.\n \n \n@@ -627,18 +644,18 @@ EXAMPLES\n \tvariable) if it has the same name as the current branch, and\n \terrors out without pushing otherwise.\n +\n-The default behavior of this command when no <refspec> is given can be\n+The default behavior of this command when no _<refspec>_ is given can be\n configured by setting the `push` option of the remote, or the `push.default`\n configuration variable.\n +\n For example, to default to pushing only the current branch to `origin`\n-use `git config remote.origin.push HEAD`.  Any valid <refspec> (like\n+use `git config remote.origin.push HEAD`.  Any valid _<refspec>_ (like\n the ones in the examples below) can be configured as the default for\n `git push origin`.\n \n `git push origin :`::\n \tPush \"matching\" branches to `origin`. See\n-\t<refspec> in the <<OPTIONS,OPTIONS>> section above for a\n+\t_<refspec>_ in the <<OPTIONS,OPTIONS>> section above for a\n \tdescription of \"matching\" branches.\n \n `git push origin master`::\n-- \ngitgitgadget\n"},{"id":"531232","messageId":"xmqqy0nvxppo.fsf@gitster.g","threadId":"64512","inReplyTo":"pull.2002.v2.git.1763988532.gitgitgadget@gmail.com","subject":"Re: [PATCH v2 0/3] doc: convert fetch pull push to synopsis style","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-11-24T18:14:43Z","receivedAt":"2025-11-24T18:14:45Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Jean-Noël Avila via GitGitGadget\" <gitgitgadget@gmail.com> writes:\n\n> Range-diff vs v1:\n>\n>  1:  397f56d874 ! 1:  994f6ee414 doc: convert git fetch to synopsis style\n>      @@ Documentation/pull-fetch-param.adoc: namespace it's being fetched to, the type o\n>        +\n>        Until Git version 2.20, and unlike when pushing with\n>        linkgit:git-push[1], any updates to `refs/tags/*` would be accepted\n>      -@@ Documentation/pull-fetch-param.adoc: object.\n>      - When the remote branch you want to fetch is known to\n>      - be rewound and rebased regularly, it is expected that\n>      - its new tip will not be a descendant of its previous tip\n>      --(as stored in your remote-tracking branch the last time\n>      -+(as stored in your remote-tracking branch the last time_\n>      - you fetched).  You would want\n>      - to use the `+` sign to indicate non-fast-forward updates\n>      - will be needed for such branches.  There is no way to\n>       @@ Documentation/pull-fetch-param.adoc: must know this is the expected usage pattern for a branch.\n>        ifdef::git-pull[]\n\nAh, this was a spurious change that did not need to exist there, and\nthis round removes the whole thing.  Looks good.\n\n>  2:  5b1e64bdf8 = 2:  6e9ea10311 doc: convert git pull to synopsis style\n>  3:  e5526eaf58 = 3:  9c70b341bb doc: convert git push to synopsis style\n"}]}