It appears that git ignores the GIT_CONFIG environment variable, while git-config *does* consider it. I have written a short script that shows this in detail and reproduces, it is included below and also posted on github at https://github.com/siriobalmelli/toolbench/blob/master/git/git-env-check.sh This behavior is confirmed in 2.17.1, 2.18.0 and 2.19.1 I have tried to google this but don’t see any references to GIT_CONFIG outside of the git-config manual. Is it intended behavior that this environment variable is only valid with git-config? Thank you very much, Sirio — #!/bin/bash # this script demonstrates that the GIT_CONFIG is used by 'git-config' # but *not* by 'git' itself. # 2018 Sirio Balmelli cleanup() { rm -rf ~/.gitconfig git-env-check } fail() { echo "$*" >&2 cleanup exit 1 } # don't break the user's config if [[ -e ~/.gitconfig ]]; then # don't fail, deleting ~/.gitconfig, for obvious reasons echo "this script would break your existing ~/.gitconfig - please remove it and run again" >&2 exit 1 fi unset GIT_CONFIG git config -l | grep -q alias.he=help \ && fail "alias 'he' already set, can't use it for this test" \ || echo "1. the alias 'he' is unset by default" echo "2. write a gitconfig in a non-standard location; export to GIT_CONFIG:" mkdir git-env-check cat <<EOF | tee git-env-check/gitconfig [alias] he = help EOF export GIT_CONFIG=$(realpath git-env-check/gitconfig) env | grep GIT_CONFIG git config -l | grep -q alias.he=help \ || fail "unexpected: git-config doesn't see GIT_CONFIG" \ && echo "3. git-config DID see 'he' from GIT_CONFIG" git he \ && fail "git does see GIT_CONFIG: please ignore this report" \ || echo "4. git, however, did NOT see 'he'" ln -s $GIT_CONFIG ~/.gitconfig git he >/dev/null \ || fail "unexpected: git also ignores ~/.gitconfig" \ && echo "5. git DOES see 'he' if conf is linked to '~/.gitconfig'" echo "6. this was $(git --version)" cleanup
Attachment:
signature.asc
Description: Message signed with OpenPGP