Home Explore Blog CI



git

9th chunk of `Documentation/git.adoc`
b7725565ef6dac9ddc74917cf766be667eae5f18bf33f9100000000100000fa9
 linkgit:git-config[1].

`GIT_SEQUENCE_EDITOR`::
	This environment variable overrides the configured Git editor
	when editing the todo list of an interactive rebase. See also
	linkgit:git-rebase[1] and the `sequence.editor` option in
	linkgit:git-config[1].

`GIT_SSH`::
`GIT_SSH_COMMAND`::
	If either of these environment variables is set then 'git fetch'
	and 'git push' will use the specified command instead of 'ssh'
	when they need to connect to a remote system.
	The command-line parameters passed to the configured command are
	determined by the ssh variant.  See `ssh.variant` option in
	linkgit:git-config[1] for details.
+
`$GIT_SSH_COMMAND` takes precedence over `$GIT_SSH`, and is interpreted
by the shell, which allows additional arguments to be included.
`$GIT_SSH` on the other hand must be just the path to a program
(which can be a wrapper shell script, if additional arguments are
needed).
+
Usually it is easier to configure any desired options through your
personal `.ssh/config` file.  Please consult your ssh documentation
for further details.

`GIT_SSH_VARIANT`::
	If this environment variable is set, it overrides Git's autodetection
	whether `GIT_SSH`/`GIT_SSH_COMMAND`/`core.sshCommand` refer to OpenSSH,
	plink or tortoiseplink. This variable overrides the config setting
	`ssh.variant` that serves the same purpose.

`GIT_SSL_NO_VERIFY`::
	Setting and exporting this environment variable to any value
	tells Git not to verify the SSL certificate when fetching or
	pushing over HTTPS.

`GIT_ATTR_SOURCE`::
	Sets the treeish that gitattributes will be read from.

`GIT_ASKPASS`::
	If this environment variable is set, then Git commands which need to
	acquire passwords or passphrases (e.g. for HTTP or IMAP authentication)
	will call this program with a suitable prompt as command-line argument
	and read the password from its STDOUT. See also the `core.askPass`
	option in linkgit:git-config[1].

`GIT_TERMINAL_PROMPT`::
	If this Boolean environment variable is set to false, git will not prompt
	on the terminal (e.g., when asking for HTTP authentication).

`GIT_CONFIG_GLOBAL`::
`GIT_CONFIG_SYSTEM`::
	Take the configuration from the given files instead from global or
	system-level configuration files. If `GIT_CONFIG_SYSTEM` is set, the
	system config file defined at build time (usually `/etc/gitconfig`)
	will not be read. Likewise, if `GIT_CONFIG_GLOBAL` is set, neither
	`$HOME/.gitconfig` nor `$XDG_CONFIG_HOME/git/config` will be read. Can
	be set to `/dev/null` to skip reading configuration files of the
	respective level.

`GIT_CONFIG_NOSYSTEM`::
	Whether to skip reading settings from the system-wide
	`$(prefix)/etc/gitconfig` file.  This Boolean environment variable can
	be used along with `$HOME` and `$XDG_CONFIG_HOME` to create a
	predictable environment for a picky script, or you can set it
	to true to temporarily avoid using a buggy `/etc/gitconfig` file while
	waiting for someone with sufficient permissions to fix it.

`GIT_FLUSH`::
	If this Boolean environment variable is set to true, then commands such
	as 'git blame' (in incremental mode), 'git rev-list', 'git log',
	'git check-attr' and 'git check-ignore' will
	force a flush of the output stream after each record have been
	flushed. If this
	variable is set to false, the output of these commands will be done
	using completely buffered I/O.   If this environment variable is
	not set, Git will choose buffered or record-oriented flushing
	based on whether stdout appears to be redirected to a file or not.

`GIT_TRACE`::
	Enables general trace messages, e.g. alias expansion, built-in
	command execution and external command execution.
+
If this variable is set to "1", "2" or "true" (comparison
is case insensitive), trace messages will be printed to
stderr.
+
If the variable is set to an integer value greater than 2
and lower than 10 (strictly) then Git will interpret this
value as an open file descriptor and will try to write the
trace messages into this file descriptor.
+
Alternatively,

Title: Git Environment Variables for Configuration, Security, and Debugging
Summary
This section of the Git documentation covers environment variables that control various aspects of Git's behavior, including SSH connections, SSL verification, attribute sources, password prompting, configuration file overrides, output buffering, and trace messaging, allowing users to customize and troubleshoot their Git experience.