Home Explore Blog CI



git

6th chunk of `Documentation/git.adoc`
a8bbd29ea5436e56b127eef6da51a6d0f6208c15dd0f06620000000100000fa4

-----------
Please see linkgit:gitglossary[7].


Environment Variables
---------------------
Various Git commands pay attention to environment variables and change
their behavior.  The environment variables marked as "Boolean" take
their values the same way as Boolean valued configuration variables, i.e.,
"true", "yes", "on" and positive numbers are taken as "yes", while "false",
"no", "off", and "0" are taken as "no".

Here are the variables:

System
~~~~~~
`HOME`::
	Specifies the path to the user's home directory. On Windows, if
	unset, Git will set a process environment variable equal to:
	`$HOMEDRIVE$HOMEPATH` if both `$HOMEDRIVE` and `$HOMEPATH` exist;
	otherwise `$USERPROFILE` if `$USERPROFILE` exists.

The Git Repository
~~~~~~~~~~~~~~~~~~
These environment variables apply to 'all' core Git commands. Nb: it
is worth noting that they may be used/overridden by SCMS sitting above
Git so take care if using a foreign front-end.

`GIT_INDEX_FILE`::
	This environment variable specifies an alternate
	index file. If not specified, the default of `$GIT_DIR/index`
	is used.

`GIT_INDEX_VERSION`::
	This environment variable specifies what index version is used
	when writing the index file out.  It won't affect existing index
	files.  By default index file version 2 or 3 is used. See
	linkgit:git-update-index[1] for more information.

`GIT_OBJECT_DIRECTORY`::
	If the object storage directory is specified via this
	environment variable then the sha1 directories are created
	underneath - otherwise the default `$GIT_DIR/objects`
	directory is used.

`GIT_ALTERNATE_OBJECT_DIRECTORIES`::
	Due to the immutable nature of Git objects, old objects can be
	archived into shared, read-only directories. This variable
	specifies a ":" separated (on Windows ";" separated) list
	of Git object directories which can be used to search for Git
	objects. New objects will not be written to these directories.
+
Entries that begin with `"` (double-quote) will be interpreted
as C-style quoted paths, removing leading and trailing
double-quotes and respecting backslash escapes. E.g., the value
`"path-with-\"-and-:-in-it":vanilla-path` has two paths:
`path-with-"-and-:-in-it` and `vanilla-path`.

`GIT_DIR`::
	If the `GIT_DIR` environment variable is set then it
	specifies a path to use instead of the default `.git`
	for the base of the repository.
	The `--git-dir` command-line option also sets this value.

`GIT_WORK_TREE`::
	Set the path to the root of the working tree.
	This can also be controlled by the `--work-tree` command-line
	option and the core.worktree configuration variable.

`GIT_NAMESPACE`::
	Set the Git namespace; see linkgit:gitnamespaces[7] for details.
	The `--namespace` command-line option also sets this value.

`GIT_CEILING_DIRECTORIES`::
	This should be a colon-separated list of absolute paths.  If
	set, it is a list of directories that Git should not chdir up
	into while looking for a repository directory (useful for
	excluding slow-loading network directories).  It will not
	exclude the current working directory or a GIT_DIR set on the
	command line or in the environment.  Normally, Git has to read
	the entries in this list and resolve any symlink that
	might be present in order to compare them with the current
	directory.  However, if even this access is slow, you
	can add an empty entry to the list to tell Git that the
	subsequent entries are not symlinks and needn't be resolved;
	e.g.,
	`GIT_CEILING_DIRECTORIES=/maybe/symlink::/very/slow/non/symlink`.

`GIT_DISCOVERY_ACROSS_FILESYSTEM`::
	When run in a directory that does not have ".git" repository
	directory, Git tries to find such a directory in the parent
	directories to find the top of the working tree, but by default it
	does not cross filesystem boundaries.  This Boolean environment variable
	can be set to true to tell Git not to stop at filesystem
	boundaries.  Like `GIT_CEILING_DIRECTORIES`, this will not affect
	an explicit repository directory set via `GIT_DIR` or on the
	command

Title: Git Environment Variables
Summary
This section of the Git documentation explains the various environment variables that can be used to customize and control Git's behavior, including variables related to the system, Git repository, and working tree, and describes how these variables can be used to override default settings and modify Git's behavior.