`GIT_TRACE_SHALLOW`::
Enables trace messages that can help debugging fetching /
cloning of shallow repositories.
See `GIT_TRACE` for available trace output options.
`GIT_TRACE_CURL`::
Enables a curl full trace dump of all incoming and outgoing data,
including descriptive information, of the git transport protocol.
This is similar to doing curl `--trace-ascii` on the command line.
See `GIT_TRACE` for available trace output options.
`GIT_TRACE_CURL_NO_DATA`::
When a curl trace is enabled (see `GIT_TRACE_CURL` above), do not dump
data (that is, only dump info lines and headers).
`GIT_TRACE2`::
Enables more detailed trace messages from the "trace2" library.
Output from `GIT_TRACE2` is a simple text-based format for human
readability.
+
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, if the variable is set to an absolute path
(starting with a '/' character), Git will interpret this
as a file path and will try to append the trace messages
to it. If the path already exists and is a directory, the
trace messages will be written to files (one per process)
in that directory, named according to the last component
of the SID and an optional counter (to avoid filename
collisions).
+
In addition, if the variable is set to
`af_unix:[<socket-type>:]<absolute-pathname>`, Git will try
to open the path as a Unix Domain Socket. The socket type
can be either `stream` or `dgram`.
+
Unsetting the variable, or setting it to empty, "0" or
"false" (case insensitive) disables trace messages.
+
See link:technical/api-trace2.html[Trace2 documentation]
for full details.
`GIT_TRACE2_EVENT`::
This setting writes a JSON-based format that is suited for machine
interpretation.
See `GIT_TRACE2` for available trace output options and
link:technical/api-trace2.html[Trace2 documentation] for full details.
`GIT_TRACE2_PERF`::
In addition to the text-based messages available in `GIT_TRACE2`, this
setting writes a column-based format for understanding nesting
regions.
See `GIT_TRACE2` for available trace output options and
link:technical/api-trace2.html[Trace2 documentation] for full details.
`GIT_TRACE_REDACT`::
By default, when tracing is activated, Git redacts the values of
cookies, the "Authorization:" header, the "Proxy-Authorization:"
header and packfile URIs. Set this Boolean environment variable to false to prevent this
redaction.
`GIT_NO_REPLACE_OBJECTS`::
Setting and exporting this environment variable tells Git to
ignore replacement refs and do not replace Git objects.
`GIT_LITERAL_PATHSPECS`::
Setting this Boolean environment variable to true will cause Git to treat all
pathspecs literally, rather than as glob patterns. For example,
running `GIT_LITERAL_PATHSPECS=1 git log -- '*.c'` will search
for commits that touch the path `*.c`, not any paths that the
glob `*.c` matches. You might want this if you are feeding
literal paths to Git (e.g., paths previously given to you by
`git ls-tree`, `--raw` diff output, etc).
`GIT_GLOB_PATHSPECS`::
Setting this Boolean environment variable to true will cause Git to treat all
pathspecs as glob patterns (aka "glob" magic).
`GIT_NOGLOB_PATHSPECS`::
Setting this Boolean environment variable to true will cause Git to treat all
pathspecs as literal (aka "literal" magic).
`GIT_ICASE_PATHSPECS`::
Setting this Boolean environment variable to true will cause Git to treat all
pathspecs as case-insensitive.
`GIT_NO_LAZY_FETCH`::
Setting this Boolean environment variable to true tells Git
not to lazily fetch missing objects from the promisor remote
on demand.
`GIT_REFLOG_ACTION`::
When a ref is updated, reflog entries are created to keep
track of the reason why the ref