iso format is used. For supported values, see the discussion
of the --date option at linkgit:git-log[1].
---[no-]progress::
+--progress::
+--no-progress::
Progress status is reported on the standard error stream
by default when it is attached to a terminal. This flag
enables progress reporting even if not attached to a
Turn off rename detection, even when the configuration
file gives the default to do so.
-`--[no-]rename-empty`::
+`--rename-empty`::
+`--no-rename-empty`::
Whether to use empty blobs as rename source.
ifndef::git-format-patch[]
---[no-]all::
+--all::
+--no-all::
Fetch all remotes, except for the ones that has the
`remote.<name>.skipFetchAll` configuration variable set.
This overrides the configuration variable fetch.all`.
precedence over the `fetch.output` config option.
ifndef::git-pull[]
---[no-]write-fetch-head::
+--write-fetch-head::
+--no-write-fetch-head::
Write the list of remote refs fetched in the `FETCH_HEAD`
file directly under `$GIT_DIR`. This is the default.
Passing `--no-write-fetch-head` from the command line tells
Allow several <repository> and <group> arguments to be
specified. No <refspec>s may be specified.
---[no-]auto-maintenance::
---[no-]auto-gc::
+--auto-maintenance::
+--no-auto-maintenance::
+--auto-gc::
+--no-auto-gc::
Run `git maintenance run --auto` at the end to perform automatic
repository maintenance if needed. (`--[no-]auto-gc` is a synonym.)
This is enabled by default.
---[no-]write-commit-graph::
+--write-commit-graph::
+--no-write-commit-graph::
Write a commit-graph after fetching. This overrides the config
setting `fetch.writeCommitGraph`.
endif::git-pull[]
--keep-non-patch::
Pass `-b` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]).
---[no-]keep-cr::
+--keep-cr::
+--no-keep-cr::
With `--keep-cr`, call 'git mailsplit' (see linkgit:git-mailsplit[1])
with the same option, to prevent it from stripping CR at the end of
lines. `am.keepcr` configuration variable can be used to specify the
blobs seen at a given path. The default minimum batch size is
50,000.
-`--[no-]sparse`::
+`--sparse`::
+`--no-sparse`::
Only download objects if they appear at a path that matches the
current sparse-checkout. If the sparse-checkout feature is enabled,
then `--sparse` is assumed and can be disabled with `--no-sparse`.
or to ask for a "blob" with `<object>` being a tag object that
points at it.
---[no-]mailmap::
---[no-]use-mailmap::
+--mailmap::
+--no-mailmap::
+--use-mailmap::
+--no-use-mailmap::
Use mailmap file to map author, committer and tagger names
and email addresses to canonical real names and email addresses.
See linkgit:git-shortlog[1].
OPTIONS
-------
---[no-]allow-onelevel::
+--allow-onelevel::
+--no-allow-onelevel::
Controls whether one-level refnames are accepted (i.e.,
refnames that do not contain multiple `/`-separated
components). The default is `--no-allow-onelevel`.
reachable from a specified remote branch or tag. This option
can be specified multiple times.
-`--[no-]single-branch`::
+`--single-branch`::
+`--no-single-branch`::
Clone only the history leading to the tip of a single branch,
either specified by the `--branch` option or the primary
branch remote's `HEAD` points at.
branch when `--single-branch` clone was made, no remote-tracking
branch is created.
-`--[no-]tags`::
+`--tags`::
+`--no-tags`::
Control whether or not tags will be cloned. When `--no-tags` is
given, the option will be become permanent by setting the
`remote.<remote>.tagOpt=--no-tags` configuration. This ensures that
not have a worktree/checkout (i.e. if any of `--no-checkout`/`-n`, `--bare`,
or `--mirror` is given)
-`--[no-]shallow-submodules`::
+`--shallow-submodules`::
+`--no-shallow-submodules`::
All submodules which are cloned will be shallow with a depth of 1.
-`--[no-]remote-submodules`::
+`--remote-submodules`::
+`--no-remote-submodules`::
All submodules which are cloned will use the status of the submodule's
remote-tracking branch to update the submodule, rather than the
superproject's recorded SHA-1. Equivalent to passing `--remote` to
object directory, `git commit-graph ...` will exit with non-zero
status.
---[no-]progress::
+--progress::
+--no-progress::
Turn progress on/off explicitly. If neither is specified, progress is
shown if standard error is connected to a terminal.
each trailer would appear, and other details.
`-n`::
-`--[no-]verify`::
+`--verify`::
+`--no-verify`::
Bypass the `pre-commit` and `commit-msg` hooks.
See also linkgit:githooks[5].
When the color setting for `name` is undefined, the command uses
`color.ui` as fallback.
---[no-]includes::
+--includes::
+--no-includes::
Respect `include.*` directives in config files when looking up
values. Defaults to `off` when a specific file is given (e.g.,
using `--file`, `--global`, etc) and `on` when searching all
--tool-help::
Print a list of diff tools that may be used with `--tool`.
---[no-]symlinks::
+--symlinks::
+--no-symlinks::
'git difftool''s default behavior is to create symlinks to the
working tree when run in `--dir-diff` mode and the right-hand
side of the comparison yields the same content as the file in
Additionally, `$BASE` is set in the environment.
-g::
---[no-]gui::
+--gui::
+--no-gui::
When 'git-difftool' is invoked with the `-g` or `--gui` option
the default diff tool will be read from the configured
`diff.guitool` variable instead of `diff.tool`. This may be
fallback in the order of `merge.guitool`, `diff.tool`,
`merge.tool` until a tool is found.
---[no-]trust-exit-code::
+--trust-exit-code::
+--no-trust-exit-code::
Errors reported by the diff tool are ignored by default.
Use `--trust-exit-code` to make 'git-difftool' exit when an
invoked diff tool returns a non-zero exit code.
Like --import-marks but instead of erroring out, silently
skips the file if it does not exist.
---[no-]relative-marks::
+--relative-marks::
+--no-relative-marks::
After specifying --relative-marks the paths specified
with --import-marks= and --export-marks= are relative
to an internal directory in the current repository.
Do not list one-line descriptions from the actual commits being
merged.
---[no-]summary::
+--summary::
+--no-summary::
Synonyms to --log and --no-log; these are deprecated and will be
removed in the future.
transformation for you, and this option should not be used if you are
feeding the result to `git send-email`.
---[no-]force-in-body-from::
+--force-in-body-from::
+--no-force-in-body-from::
With the e-mail sender specified via the `--from` option, by
default, an in-body "From:" to identify the real author of
the commit is added at the top of the commit log message if
`Cc:`, and custom) headers added so far from config or command
line.
---[no-]cover-letter::
+--cover-letter::
+--no-cover-letter::
In addition to the patches, generate a cover letter file
containing the branch description, shortlog and the overall diffstat. You can
fill in a description in the file before sending it out.
The default is `--no-notes`, unless the `format.notes` configuration is
set.
---[no-]signature=<signature>::
+--signature=<signature>::
+--no-signature::
Add a signature to each message produced. Per RFC 3676 the signature
is separated from the body by a line with '-- ' on it. If the
signature option is omitted the signature defaults to the Git version
Output an all-zero hash in each patch's From header instead
of the hash of the commit.
---[no-]base[=<commit>]::
+--no-base::
+--base[=<commit>]::
Record the base tree information to identify the state the
patch series applies to. See the BASE TREE INFORMATION section
below for details. If <commit> is "auto", a base commit is
Print out objects that exist but that aren't reachable from any
of the reference nodes.
---[no-]dangling::
+--dangling::
+--no-dangling::
Print objects that exist but that are never 'directly' used (default).
`--no-dangling` can be used to omit this information from the output.
compatible with linkgit:git-rev-parse[1], e.g.
`HEAD@{1234567890}~25^2:src/`.
---[no-]progress::
+--progress::
+--no-progress::
Progress status is reported on the standard error stream by
default when it is attached to a terminal, unless
--no-progress or --verbose is specified. --progress forces
progress status even if the standard error stream is not
directed to a terminal.
---[no-]references::
+--references::
+--no-references::
Control whether to check the references database consistency
via 'git refs verify'. See linkgit:git-refs[1] for details.
The default is to check the references database.
other housekeeping tasks (e.g. rerere, working trees, reflog...) will
be performed as well.
---[no-]detach::
+--detach::
+--no-detach::
Run in the background if the system supports it. This option overrides
the `gc.autoDetach` config.
---[no-]cruft::
+--cruft::
+--no-cruft::
When expiring unreachable objects, pack them separately into a
cruft pack instead of storing them as loose objects. `--cruft`
is on by default.
fails if the name of packed archive does not end
with .pack).
---[no-]rev-index::
+--rev-index::
+--no-rev-index::
When this flag is provided, generate a reverse index
(a `.rev` file) corresponding to the given pack. If
`--verify` is given, ensure that the existing
Print out the ref name given on the command line by which each
commit was reached.
-`--[no-]mailmap`::
-`--[no-]use-mailmap`::
+`--mailmap`::
+`--no-mailmap`::
+`--use-mailmap`::
+`--no-use-mailmap`::
Use mailmap file to map author and committer names and email
addresses to canonical real names and email addresses. See
linkgit:git-shortlog[1].
do not list filenames multiple times if they have multiple
conflicting stages).
---[no-]messages::
+--messages::
+--no-messages::
Write any informational messages such as "Auto-merging <path>"
or CONFLICT notices to the end of stdout. If unspecified, the
default is to include these messages if there are merge
+
`<dir>` must be an alternate of the current repository.
---[no-]progress::
+--progress::
+--no-progress::
Turn progress on/off explicitly. If neither is specified, progress is
shown if standard error is connected to a terminal. Supported by
sub-commands `write`, `verify`, `expire`, and `repack.
Add --no-reuse-object if you want to force a uniform compression
level on all data no matter the source.
---[no-]sparse::
+--sparse::
+--no-sparse::
Toggle the "sparse" algorithm to determine which objects to include in
the pack, when combined with the "--revs" option. This algorithm
only walks trees that appear in paths that introduce new objects.
--verbose::
Pass --verbose to git-fetch and git-merge.
---[no-]recurse-submodules[=(yes|on-demand|no)]::
+--recurse-submodules[=(yes|on-demand|no)]::
+--no-recurse-submodules::
This option controls if new commits of populated submodules should
be fetched, and if the working trees of active submodules should be
updated, too (see linkgit:git-fetch[1], linkgit:git-config[1] and
with configuration variable `push.followTags`. For more
information, see `push.followTags` in linkgit:git-config[1].
---[no-]signed::
+--signed::
+--no-signed::
--signed=(true|false|if-asked)::
GPG-sign the push request to update refs on the receiving
side, to allow it to be checked by the hooks and/or be
will also fail if the actual call to `gpg --sign` fails. See
linkgit:git-receive-pack[1] for the details on the receiving end.
---[no-]atomic::
+--atomic::
+--no-atomic::
Use an atomic transaction on the remote side if available.
Either all refs are updated, or on error, no refs are updated.
If the server does not support atomic pushes the push will fail.
repository over ssh, and you do not have the program in
a directory on the default $PATH.
---[no-]force-with-lease::
+--force-with-lease::
+--no-force-with-lease::
--force-with-lease=<refname>::
--force-with-lease=<refname>:<expect>::
Usually, "git push" refuses to update a remote ref that is
origin +master` to force a push to the `master` branch). See the
`<refspec>...` section above for details.
---[no-]force-if-includes::
+--force-if-includes::
+--no-force-if-includes::
Force an update only if the tip of the remote-tracking ref
has been integrated locally.
+
linkgit:git-pull[1] and other commands. For more information,
see `branch.<name>.merge` in linkgit:git-config[1].
---[no-]thin::
+--thin::
+--no-thin::
These options are passed to linkgit:git-send-pack[1]. A thin transfer
significantly reduces the amount of sent data when the sender and
receiver share many of the same objects in common. The default is
"push.recurseSubmodules={on-demand,only}" or "submodule.recurse" configuration,
further recursion will occur. In this case, "only" is treated as "on-demand".
---[no-]verify::
+--verify::
+--no-verify::
Toggle the pre-push hook (see linkgit:githooks[5]). The
default is --verify, giving the hook a chance to prevent the
push. With --no-verify, the hook is bypassed completely.
--remerge-diff::
Convenience option, equivalent to `--diff-merges=remerge`.
---[no-]notes[=<ref>]::
+--notes[=<ref>]::
+--no-notes::
This flag is passed to the `git log` program
(see linkgit:git-log[1]) that generates the patches.
directories the index file and index output file are
located in.
---[no-]recurse-submodules::
+--recurse-submodules::
+--no-recurse-submodules::
Using --recurse-submodules will update the content of all active
submodules according to the commit recorded in the superproject by
calling read-tree recursively, also setting the submodules' HEAD to be
If a file that is different between _<commit>_ and `HEAD` has local
changes, reset is aborted.
-`--[no-]recurse-submodules`::
+`--recurse-submodules`::
+`--no-recurse-submodules`::
When the working tree is updated, using `--recurse-submodules` will
also recursively reset the working tree of all active submodules
according to the commit recorded in the superproject, also setting
Only necessary if `--compose` is also set. If `--compose`
is not set, this will be prompted for.
---[no-]outlook-id-fix::
+--outlook-id-fix::
+--no-outlook-id-fix::
Microsoft Outlook SMTP servers discard the Message-ID sent via email and
assign a new random Message-ID, thus breaking threads.
+
--no-header-cmd::
Disable any header command in use.
---[no-]chain-reply-to::
+--chain-reply-to::
+--no-chain-reply-to::
If this is set, each email will be sent as a reply to the previous
email sent. If disabled with `--no-chain-reply-to`, all emails after
the first will be sent as replies to the first email sent. When using
values in the `sendemail` section. The default identity is
the value of `sendemail.identity`.
---[no-]signed-off-by-cc::
+--signed-off-by-cc::
+--no-signed-off-by-cc::
If this is set, add emails found in the `Signed-off-by` trailer or `Cc:`
lines to the cc list. Default is the value of `sendemail.signedOffByCc`
configuration value; if that is unspecified, default to
`--signed-off-by-cc`.
---[no-]cc-cover::
+--cc-cover::
+--no-cc-cover::
If this is set, emails found in `Cc:` headers in the first patch of
the series (typically the cover letter) are added to the cc list
for each email set. Default is the value of `sendemail.ccCover`
configuration value; if that is unspecified, default to `--no-cc-cover`.
---[no-]to-cover::
+--to-cover::
+--no-to-cover::
If this is set, emails found in `To:` headers in the first patch of
the series (typically the cover letter) are added to the to list
for each email set. Default is the value of `sendemail.toCover`
that is unspecified, default to `self` if `--suppress-from` is
specified, as well as `body` if `--no-signed-off-cc` is specified.
---[no-]suppress-from::
+--suppress-from::
+--no-suppress-from::
If this is set, do not add the `From:` address to the `Cc:` list.
Default is the value of `sendemail.suppressFrom` configuration
value; if that is unspecified, default to `--no-suppress-from`.
---[no-]thread::
+--thread::
+--no-thread::
If this is set, the `In-Reply-To` and `References` headers will be
added to each email sent. Whether each mail refers to the
previous email (`deep` threading per `git format-patch`
Failure to do so may not produce the expected result in the
recipient's MUA.
---[no-]mailmap::
+--mailmap::
+--no-mailmap::
Use the mailmap file (see linkgit:gitmailmap[5]) to map all
addresses to their canonical real name and email address. Additional
mailmap data specific to `git send-email` may be provided using the
--dry-run::
Do everything except actually send the emails.
---[no-]format-patch::
+--format-patch::
+--no-format-patch::
When an argument may be understood either as a reference or as a file name,
choose to understand it as a format-patch argument (`--format-patch`)
or as a file name (`--no-format-patch`). By default, when such a conflict
Make `git send-email` less verbose. One line per email should be
all that is output.
---[no-]validate::
+--validate::
+--no-validate::
Perform sanity checks on patches.
Currently, validation means the following:
+
fails to update then the entire push will fail without changing any
refs.
---[no-]signed::
+--signed::
+--no-signed::
--signed=(true|false|if-asked)::
GPG-sign the push request to update refs on the receiving
side, to allow it to be checked by the hooks and/or be
clone with a history truncated to the specified number of revisions.
See linkgit:git-clone[1]
---[no-]recommend-shallow::
+--recommend-shallow::
+--no-recommend-shallow::
This option is only valid for the update command.
The initial clone of a submodule will use the recommended
`submodule.<name>.shallow` as provided by the `.gitmodules` file
Clone new submodules in parallel with as many jobs.
Defaults to the `submodule.fetchJobs` option.
---[no-]single-branch::
+--single-branch::
+--no-single-branch::
This option is only valid for the update command.
Clone only one branch during update: HEAD or one specified by --branch.
--chmod=(+|-)x::
Set the execute permissions on the updated files.
---[no-]assume-unchanged::
+--assume-unchanged::
+--no-assume-unchanged::
When this flag is specified, the object names recorded
for the paths are not updated. Instead, this option
sets/unsets the "assume unchanged" bit for the
Like `--refresh`, but checks stat information unconditionally,
without regard to the "assume unchanged" setting.
---[no-]skip-worktree::
+--skip-worktree::
+--no-skip-worktree::
When one of these flags is specified, the object names recorded
for the paths are not updated. Instead, these options
set and unset the "skip-worktree" bit for the paths. See
section "Skip-worktree bit" below for more information.
---[no-]ignore-skip-worktree-entries::
+--ignore-skip-worktree-entries::
+--no-ignore-skip-worktree-entries::
Do not remove skip-worktree (AKA "index-only") entries even when
the `--remove` option was specified.
---[no-]fsmonitor-valid::
+--fsmonitor-valid::
+--no-fsmonitor-valid::
When one of these flags is specified, the object names recorded
for the paths are not updated. Instead, these options
set and unset the "fsmonitor valid" bit for the paths. See
OPTIONS
-------
---[no-]strict::
+--strict::
+--no-strict::
Do not try <directory>/.git/ if <directory> is not a Git directory.
--timeout=<n>::
With `add`, detach `HEAD` in the new worktree. See "DETACHED HEAD"
in linkgit:git-checkout[1].
---[no-]checkout::
+--checkout::
+--no-checkout::
By default, `add` checks out `<commit-ish>`, however, `--no-checkout` can
be used to suppress checkout in order to make customizations,
such as configuring sparse-checkout. See "Sparse checkout"
in linkgit:git-read-tree[1].
---[no-]guess-remote::
+--guess-remote::
+--no-guess-remote::
With `worktree add <path>`, without `<commit-ish>`, instead
of creating a new branch from `HEAD`, if there exists a tracking
branch in exactly one remote matching the basename of `<path>`,
This can also be set up as the default behaviour by using the
`worktree.guessRemote` config option.
---[no-]relative-paths::
+--relative-paths::
+--no-relative-paths::
Link worktrees using relative paths or absolute paths (default).
Overrides the `worktree.useRelativePaths` config option, see
linkgit:git-config[1].
With `repair`, the linking files will be updated if there's an absolute/relative
mismatch, even if the links are correct.
---[no-]track::
+--track::
+--no-track::
When creating a new branch, if `<commit-ish>` is a branch,
mark it as "upstream" from the new branch. This is the
default if `<commit-ish>` is a remote-tracking branch. See
report($line, "multiple parameters in a definition list item");
}
+ if ($line =~ /^`?--\[no-\][a-z0-9-]+.*(::|;;)$/) {
+ report($line, "definition list item with a `--[no-]` parameter");
+ }
}
Only useful when merging.
endif::git-pull[]
-`--[no-]verify`::
+`--verify`::
+`--no-verify`::
By default, the pre-merge and commit-msg hooks are run.
When `--no-verify` is given, these are bypassed.
See also linkgit:githooks[5].
Instead of checking out the branch pointed to by the cloned
repository's HEAD, check out the `<name>` branch instead.
---[no-]single-branch::
+--single-branch::
+--no-single-branch::
Clone only the history leading to the tip of a single branch, either
specified by the `--branch` option or the primary branch remote's
`HEAD` points at.
cloning. If the HEAD at the remote did not point at any branch when
`--single-branch` clone was made, no remote-tracking branch is created.
---[no-]src::
+--src::
+--no-src::
By default, `scalar clone` places the cloned repository within a
`<entlistment>/src` directory. Use `--no-src` to place the cloned
repository directly in the `<enlistment>` directory.
---[no-]tags::
+--tags::
+--no-tags::
By default, `scalar clone` will fetch the tag objects advertised by
the remote and future `git fetch` commands will do the same. Use
`--no-tags` to avoid fetching tags in `scalar clone` and to configure
the repository to avoid fetching tags in the future. To fetch tags after
cloning with `--no-tags`, run `git fetch --tags`.
---[no-]full-clone::
+--full-clone::
+--no-full-clone::
A sparse-checkout is initialized by default. This behavior can be
turned off via `--full-clone`.
---[no-]maintenance::
+--maintenance::
+--no-maintenance::
By default, `scalar clone` configures the enlistment to use Git's
background maintenance feature. Use the `--no-maintenance` to skip
this configuration.
parent directory is considered to be the Scalar enlistment. If the worktree is
_not_ called `src/`, it itself will be considered to be the Scalar enlistment.
---[no-]maintenance::
+--maintenance::
+--no-maintenance::
By default, `scalar register` configures the enlistment to use Git's
background maintenance feature. Use the `--no-maintenance` to skip
this configuration. This does not disable any maintenance that may