]> git.ipfire.org Git - thirdparty/git.git/blobdiff - Documentation/git.txt
Merge branch 'ps/config-env-pairs'
[thirdparty/git.git] / Documentation / git.txt
index a6d4ad0818bf5fb285d38233f4766a22579bae18..d36e6fd482530b960ac9ff6544c84cbff638c585 100644 (file)
@@ -13,7 +13,7 @@ SYNOPSIS
     [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
     [-p|--paginate|-P|--no-pager] [--no-replace-objects] [--bare]
     [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
-    [--super-prefix=<path>]
+    [--super-prefix=<path>] [--config-env <name>=<envvar>]
     <command> [<args>]
 
 DESCRIPTION
@@ -80,6 +80,28 @@ config file). Including the equals but with an empty value (like `git -c
 foo.bar= ...`) sets `foo.bar` to the empty string which `git config
 --type=bool` will convert to `false`.
 
+--config-env=<name>=<envvar>::
+       Like `-c <name>=<value>`, give configuration variable
+       '<name>' a value, where <envvar> is the name of an
+       environment variable from which to retrieve the value. Unlike
+       `-c` there is no shortcut for directly setting the value to an
+       empty string, instead the environment variable itself must be
+       set to the empty string.  It is an error if the `<envvar>` does not exist
+       in the environment. `<envvar>` may not contain an equals sign
+       to avoid ambiguity with `<name>`s which contain one.
++
+This is useful for cases where you want to pass transitory
+configuration options to git, but are doing so on OS's where
+other processes might be able to read your cmdline
+(e.g. `/proc/self/cmdline`), but not your environ
+(e.g. `/proc/self/environ`). That behavior is the default on
+Linux, but may not be on your system.
++
+Note that this might add security for variables such as
+`http.extraHeader` where the sensitive information is part of
+the value, but not e.g. `url.<base>.insteadOf` where the
+sensitive information can be part of the key.
+
 --exec-path[=<path>]::
        Path to wherever your core Git programs are installed.
        This can also be controlled by setting the GIT_EXEC_PATH