advice.*::
	These variables control various optional help messages designed to
	aid new users. All 'advice.*' variables default to 'true', and you
	can tell Git that you do not need help by setting these to 'false':
+
--
	fetchShowForcedUpdates::
		Advice shown when linkgit:git-fetch[1] takes a long time
		to calculate forced updates after ref updates, or to warn
		that the check is disabled.
	pushUpdateRejected::
		Set this variable to 'false' if you want to disable
		'pushNonFFCurrent', 'pushNonFFMatching', 'pushAlreadyExists',
		'pushFetchFirst', 'pushNeedsForce', and 'pushRefNeedsUpdate'
		simultaneously.
	pushNonFFCurrent::
		Advice shown when linkgit:git-push[1] fails due to a
		non-fast-forward update to the current branch.
	pushNonFFMatching::
		Advice shown when you ran linkgit:git-push[1] and pushed
		'matching refs' explicitly (i.e. you used ':', or
		specified a refspec that isn't your current branch) and
		it resulted in a non-fast-forward error.
	pushAlreadyExists::
		Shown when linkgit:git-push[1] rejects an update that
		does not qualify for fast-forwarding (e.g., a tag.)
	pushFetchFirst::
		Shown when linkgit:git-push[1] rejects an update that
		tries to overwrite a remote ref that points at an
		object we do not have.
	pushNeedsForce::
		Shown when linkgit:git-push[1] rejects an update that
		tries to overwrite a remote ref that points at an
		object that is not a commit-ish, or make the remote
		ref point at an object that is not a commit-ish.
	pushUnqualifiedRefname::
		Shown when linkgit:git-push[1] gives up trying to
		guess based on the source and destination refs what
		remote ref namespace the source belongs in, but where
		we can still suggest that the user push to either
		refs/heads/* or refs/tags/* based on the type of the
		source object.
	pushRefNeedsUpdate::
		Shown when linkgit:git-push[1] rejects a forced update of
		a branch when its remote-tracking ref has updates that we
		do not have locally.
	statusAheadBehind::
		Shown when linkgit:git-status[1] computes the ahead/behind
		counts for a local ref compared to its remote tracking ref,
		and that calculation takes longer than expected. Will not
		appear if `status.aheadBehind` is false or the option
		`--no-ahead-behind` is given.
	statusHints::
		Show directions on how to proceed from the current
		state in the output of linkgit:git-status[1], in
		the template shown when writing commit messages in
		linkgit:git-commit[1], and in the help message shown
		by linkgit:git-switch[1] or
		linkgit:git-checkout[1] when switching branch.
	statusUoption::
		Advise to consider using the `-u` option to linkgit:git-status[1]
		when the command takes more than 2 seconds to enumerate untracked
		files.
	commitBeforeMerge::
		Advice shown when linkgit:git-merge[1] refuses to
		merge to avoid overwriting local changes.
	resetQuiet::
		Advice to consider using the `--quiet` option to linkgit:git-reset[1]
		when the command takes more than 2 seconds to enumerate unstaged
		changes after reset.
	resolveConflict::
		Advice shown by various commands when conflicts
		prevent the operation from being performed.
	sequencerInUse::
		Advice shown when a sequencer command is already in progress.
	implicitIdentity::
		Advice on how to set your identity configuration when
		your information is guessed from the system username and
		domain name.
	detachedHead::
		Advice shown when you used
		linkgit:git-switch[1] or linkgit:git-checkout[1]
		to move to the detach HEAD state, to instruct how to
		create a local branch after the fact.
	checkoutAmbiguousRemoteBranchName::
		Advice shown when the argument to
		linkgit:git-checkout[1] and linkgit:git-switch[1]
		ambiguously resolves to a
		remote tracking branch on more than one remote in
		situations where an unambiguous argument would have
		otherwise caused a remote-tracking branch to be
		checked out. See the `checkout.defaultRemote`
		configuration variable for how to set a given remote
		to used by default in some situations where this
		advice would be printed.
	amWorkDir::
		Advice that shows the location of the patch file when
		linkgit:git-am[1] fails to apply it.
	rmHints::
		In case of failure in the output of linkgit:git-rm[1],
		show directions on how to proceed from the current state.
	addEmbeddedRepo::
		Advice on what to do when you've accidentally added one
		git repo inside of another.
	ignoredHook::
		Advice shown if a hook is ignored because the hook is not
		set as executable.
	waitingForEditor::
		Print a message to the terminal whenever Git is waiting for
		editor input from the user.
	nestedTag::
		Advice shown if a user attempts to recursively tag a tag object.
	submoduleAlternateErrorStrategyDie::
		Advice shown when a submodule.alternateErrorStrategy option
		configured to "die" causes a fatal error.
	addIgnoredFile::
		Advice shown if a user attempts to add an ignored file to
		the index.
	addEmptyPathspec::
		Advice shown if a user runs the add command without providing
		the pathspec parameter.
	updateSparsePath::
		Advice shown when either linkgit:git-add[1] or linkgit:git-rm[1]
		is asked to update index entries outside the current sparse
		checkout.
--
