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', and 'pushNeedsForce'
		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.
	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.
--
