Git - git Documentation (2024)

GIT_MERGE_VERBOSITY

A number controlling the amount of output shown bythe recursive merge strategy. Overrides merge.verbosity.See git-merge[1]

GIT_PAGER

This environment variable overrides $PAGER. If it is setto an empty string or to the value "cat", Git will not launcha pager. See also the core.pager option ingit-config[1].

GIT_PROGRESS_DELAY

A number controlling how many seconds to delay before showingoptional progress indicators. Defaults to 2.

GIT_EDITOR

This environment variable overrides $EDITOR and $VISUAL.It is used by several Git commands when, on interactive mode,an editor is to be launched. See also git-var[1]and the core.editor option in git-config[1].

GIT_SEQUENCE_EDITOR

This environment variable overrides the configured Git editorwhen editing the todo list of an interactive rebase. See alsogit-rebase[1] and the sequence.editor option ingit-config[1].

GIT_SSH
GIT_SSH_COMMAND

If either of these environment variables is set then git fetchand git push will use the specified command instead of sshwhen they need to connect to a remote system.The command-line parameters passed to the configured command aredetermined by the ssh variant. See ssh.variant option ingit-config[1] for details.

$GIT_SSH_COMMAND takes precedence over $GIT_SSH, and is interpretedby 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 areneeded).

Usually it is easier to configure any desired options through yourpersonal .ssh/config file. Please consult your ssh documentationfor further details.

GIT_SSH_VARIANT

If this environment variable is set, it overrides Git’s autodetectionwhether GIT_SSH/GIT_SSH_COMMAND/core.sshCommand refer to OpenSSH,plink or tortoiseplink. This variable overrides the config settingssh.variant that serves the same purpose.

GIT_SSL_NO_VERIFY

Setting and exporting this environment variable to any valuetells Git not to verify the SSL certificate when fetching orpushing 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 toacquire passwords or passphrases (e.g. for HTTP or IMAP authentication)will call this program with a suitable prompt as command-line argumentand read the password from its STDOUT. See also the core.askPassoption in git-config[1].

GIT_TERMINAL_PROMPT

If this Boolean environment variable is set to false, git will not prompton 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 orsystem-level configuration files. If GIT_CONFIG_SYSTEM is set, thesystem 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. Canbe set to /dev/null to skip reading configuration files of therespective level.

GIT_CONFIG_NOSYSTEM

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

GIT_FLUSH

If this Boolean environment variable is set to true, then commands suchas git blame (in incremental mode), git rev-list, git log,git check-attr and git check-ignore willforce a flush of the output stream after each record have beenflushed. If thisvariable is set to false, the output of these commands will be doneusing completely buffered I/O. If this environment variable isnot set, Git will choose buffered or record-oriented flushingbased on whether stdout appears to be redirected to a file or not.

GIT_TRACE

Enables general trace messages, e.g. alias expansion, built-incommand execution and external command execution.

If this variable is set to "1", "2" or "true" (comparisonis case insensitive), trace messages will be printed tostderr.

If the variable is set to an integer value greater than 2and lower than 10 (strictly) then Git will interpret thisvalue as an open file descriptor and will try to write thetrace messages into this file descriptor.

Alternatively, if the variable is set to an absolute path(starting with a / character), Git will interpret thisas a file path and will try to append the trace messagesto it.

Unsetting the variable, or setting it to empty, "0" or"false" (case insensitive) disables trace messages.

GIT_TRACE_FSMONITOR

Enables trace messages for the filesystem monitor extension.See GIT_TRACE for available trace output options.

GIT_TRACE_PACK_ACCESS

Enables trace messages for all accesses to any packs. For eachaccess, the pack file name and an offset in the pack isrecorded. This may be helpful for troubleshooting somepack-related performance problems.See GIT_TRACE for available trace output options.

GIT_TRACE_PACKET

Enables trace messages for all packets coming in or out of agiven program. This can help with debugging object negotiationor other protocol issues. Tracing is turned off at a packetstarting with "PACK" (but see GIT_TRACE_PACKFILE below).See GIT_TRACE for available trace output options.

GIT_TRACE_PACKFILE

Enables tracing of packfiles sent or received by agiven program. Unlike other trace output, this trace isverbatim: no headers, and no quoting of binary data. You almostcertainly want to direct into a file (e.g.,GIT_TRACE_PACKFILE=/tmp/my.pack) rather than displaying it onthe terminal or mixing it with other trace output.

Note that this is currently only implemented for the client sideof clones and fetches.

GIT_TRACE_PERFORMANCE

Enables performance related trace messages, e.g. total executiontime of each Git command.See GIT_TRACE for available trace output options.

GIT_TRACE_REFS

Enables trace messages for operations on the ref database.See GIT_TRACE for available trace output options.

GIT_TRACE_SETUP

Enables trace messages printing the .git, working tree and currentworking directory after Git has completed its setup phase.See GIT_TRACE for available trace output options.

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 dumpdata (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 humanreadability.

If this variable is set to "1", "2" or "true" (comparisonis case insensitive), trace messages will be printed tostderr.

If the variable is set to an integer value greater than 2and lower than 10 (strictly) then Git will interpret thisvalue as an open file descriptor and will try to write thetrace messages into this file descriptor.

Alternatively, if the variable is set to an absolute path(starting with a / character), Git will interpret thisas a file path and will try to append the trace messagesto it. If the path already exists and is a directory, thetrace messages will be written to files (one per process)in that directory, named according to the last componentof the SID and an optional counter (to avoid filenamecollisions).

In addition, if the variable is set toaf_unix:[<socket-type>:]<absolute-pathname>, Git will tryto open the path as a Unix Domain Socket. The socket typecan be either stream or dgram.

Unsetting the variable, or setting it to empty, "0" or"false" (case insensitive) disables trace messages.

See Trace2 documentationfor full details.

GIT_TRACE2_EVENT

This setting writes a JSON-based format that is suited for machineinterpretation.See GIT_TRACE2 for available trace output options andTrace2 documentation for full details.

GIT_TRACE2_PERF

In addition to the text-based messages available in GIT_TRACE2, thissetting writes a column-based format for understanding nestingregions.See GIT_TRACE2 for available trace output options andTrace2 documentation for full details.

GIT_TRACE_REDACT

By default, when tracing is activated, Git redacts the values ofcookies, the "Authorization:" header, the "Proxy-Authorization:"header and packfile URIs. Set this Boolean environment variable to false to prevent thisredaction.

GIT_NO_REPLACE_OBJECTS

Setting and exporting this environment variable tells Git toignore replacement refs and do not replace Git objects.

GIT_LITERAL_PATHSPECS

Setting this Boolean environment variable to true will cause Git to treat allpathspecs literally, rather than as glob patterns. For example,running GIT_LITERAL_PATHSPECS=1 git log -- '*.c' will searchfor commits that touch the path *.c, not any paths that theglob *.c matches. You might want this if you are feedingliteral paths to Git (e.g., paths previously given to you bygit ls-tree, --raw diff output, etc).

GIT_GLOB_PATHSPECS

Setting this Boolean environment variable to true will cause Git to treat allpathspecs as glob patterns (aka "glob" magic).

GIT_NOGLOB_PATHSPECS

Setting this Boolean environment variable to true will cause Git to treat allpathspecs as literal (aka "literal" magic).

GIT_ICASE_PATHSPECS

Setting this Boolean environment variable to true will cause Git to treat allpathspecs as case-insensitive.

GIT_NO_LAZY_FETCH

Setting this Boolean environment variable to true tells Gitnot to lazily fetch missing objects from the promisor remoteon demand.

GIT_REFLOG_ACTION

When a ref is updated, reflog entries are created to keeptrack of the reason why the ref was updated (which istypically the name of the high-level command that updatedthe ref), in addition to the old and new values of the ref.A scripted Porcelain command can use set_reflog_actionhelper function in git-sh-setup to set its name to thisvariable when it is invoked as the top level command by theend user, to be recorded in the body of the reflog.

GIT_REF_PARANOIA

If this Boolean environment variable is set to false, ignore broken or badly named refs when iteratingover lists of refs. Normally Git will try to include any suchrefs, which may cause some operations to fail. This is usuallypreferable, as potentially destructive operations (e.g.,git-prune[1]) are better off aborting rather thanignoring broken refs (and thus considering the history theypoint to as not worth saving). The default value is 1 (i.e.,be paranoid about detecting and aborting all operations). Youshould not normally need to set this to 0, but it may beuseful when trying to salvage data from a corrupted repository.

GIT_COMMIT_GRAPH_PARANOIA

When loading a commit object from the commit-graph, Git performs anexistence check on the object in the object database. This is done toavoid issues with stale commit-graphs that contain references toalready-deleted commits, but comes with a performance penalty.

The default is "false", which disables the aforementioned behavior.Setting this to "true" enables the existence check so that stale commitswill never be returned from the commit-graph at the cost of performance.

GIT_ALLOW_PROTOCOL

If set to a colon-separated list of protocols, behave as ifprotocol.allow is set to never, and each of the listedprotocols has protocol.<name>.allow set to always(overriding any existing configuration). See the description ofprotocol.allow in git-config[1] for more details.

GIT_PROTOCOL_FROM_USER

Set this Boolean environment variable to false to prevent protocols used by fetch/push/clone which areconfigured to the user state. This is useful to restrict recursivesubmodule initialization from an untrusted repository or for programswhich feed potentially-untrusted URLS to git commands. Seegit-config[1] for more details.

GIT_PROTOCOL

For internal use only. Used in handshaking the wire protocol.Contains a colon : separated list of keys with optional values<key>[=<value>]. Presence of unknown keys and values must beignored.

Note that servers may need to be configured to allow this variable topass over some transports. It will be propagated automatically whenaccessing local repositories (i.e., file:// or a filesystem path), aswell as over the git:// protocol. For git-over-http, it should workautomatically in most configurations, but see the discussion ingit-http-backend[1]. For git-over-ssh, the ssh server may needto be configured to allow clients to pass this variable (e.g., by usingAcceptEnv GIT_PROTOCOL with OpenSSH).

This configuration is optional. If the variable is not propagated, thenclients will fall back to the original "v0" protocol (but may miss outon some performance improvements or features). This variable currentlyonly affects clones and fetches; it is not yet used for pushes (but maybe in the future).

GIT_OPTIONAL_LOCKS

If this Boolean environment variable is set to false, Git will complete any requested operation withoutperforming any optional sub-operations that require taking a lock.For example, this will prevent git status from refreshing theindex as a side effect. This is useful for processes running inthe background which do not want to cause lock contention withother operations on the repository. Defaults to 1.

GIT_REDIRECT_STDIN
GIT_REDIRECT_STDOUT
GIT_REDIRECT_STDERR

Windows-only: allow redirecting the standard input/output/errorhandles to paths specified by the environment variables. This isparticularly useful in multi-threaded applications where thecanonical way to pass standard handles via CreateProcess() isnot an option because it would require the handles to be markedinheritable (and consequently every spawned process wouldinherit them, possibly blocking regular Git operations). Theprimary intended use case is to use named pipes for communication(e.g. \\.\pipe\my-git-stdin-123).

Two special values are supported: off will simply close thecorresponding standard handle, and if GIT_REDIRECT_STDERR is2>&1, standard error will be redirected to the same handle asstandard output.

GIT_PRINT_SHA1_ELLIPSIS (deprecated)

If set to yes, print an ellipsis following an(abbreviated) SHA-1 value. This affects indications ofdetached HEADs (git-checkout[1]) and the rawdiff output (git-diff[1]). Printing anellipsis in the cases mentioned is no longer consideredadequate and support for it is likely to be removed in theforeseeable future (along with the variable).

Git - git Documentation (2024)

References

Top Articles
Latest Posts
Article information

Author: Van Hayes

Last Updated:

Views: 5771

Rating: 4.6 / 5 (66 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Van Hayes

Birthday: 1994-06-07

Address: 2004 Kling Rapid, New Destiny, MT 64658-2367

Phone: +512425013758

Job: National Farming Director

Hobby: Reading, Polo, Genealogy, amateur radio, Scouting, Stand-up comedy, Cryptography

Introduction: My name is Van Hayes, I am a thankful, friendly, smiling, calm, powerful, fine, enthusiastic person who loves writing and wants to share my knowledge and understanding with you.