ssh.variant::
	By default, Git determines the command line arguments to use
	based on the basename of the configured SSH command (configured
	using the environment variable `GIT_SSH` or `GIT_SSH_COMMAND` or
	the config setting `core.sshCommand`). If the basename is
	unrecognized, Git will attempt to detect support of OpenSSH
	options by first invoking the configured SSH command with the
	`-G` (print configuration) option and will subsequently use
	OpenSSH options (if that is successful) or no options besides
	the host and remote command (if it fails).
+
The config variable `ssh.variant` can be set to override this detection.
Valid values are `ssh` (to use OpenSSH options), `plink`, `putty`,
`tortoiseplink`, `simple` (no options except the host and remote command).
The default auto-detection can be explicitly requested using the value
`auto`.  Any other value is treated as `ssh`.  This setting can also be
overridden via the environment variable `GIT_SSH_VARIANT`.
+
The current command-line parameters used for each variant are as
follows:
+
--

* `ssh` - [-p port] [-4] [-6] [-o option] [username@]host command

* `simple` - [username@]host command

* `plink` or `putty` - [-P port] [-4] [-6] [username@]host command

* `tortoiseplink` - [-P port] [-4] [-6] -batch [username@]host command

--
+
Except for the `simple` variant, command-line parameters are likely to
change as git gains new features.
