Re: Bug report: GIT_CONFIG and user.email/name
To
German Lashevich
Cc
git@vger.kernel.org
From
Jeff King
See Also
Prev
Date
2021-07-14 18:10:53 UTC
On Wed, Jul 14, 2021 at 07:10:27PM +0200, German Lashevich wrote:

> I've faced an issue while trying to use a non-default .gitconfig file
> via specifying
> GIT_CONFIG environment variable.
> 
> What did you do before the bug happened? (Steps to reproduce your issue)
> 
> ```
> # use custom .gitconfig via GIT_CONFIG envvar:
> mkdir -p /tmp/git-test/repo
> cat <<EOT > /tmp/git-test/.gitconfig
> [user]
>     name = John Doe
>     email = john@doe.me
> EOT
> cd /tmp/git-test/repo
> git init
> export GIT_CONFIG=/tmp/git-test/.gitconfig
> echo Hi > readme.txt
> git add readme.txt
> git commit -m 'Initial commit'
> ```

The GIT_CONFIG variable doesn't work that way. It is not a general
mechanism used by all of Git, but rather a specific feature of the
git-config program (and even there it is a historical wart; you should
use "git config --file" instead).

One of these variables is probably more helpful:

  $ man git | sed -n '/GLOBAL/,/^$/p'
  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.

Note that they're new in v2.32.0.

-Peff