Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
Get global gitconfig path
Is there a command I can run to get the path of global gitconfig
for a user? Like git config --global --edit
, but I want the path, not an editor window.
I want the right path whether or not this file already exists. i.e. I want the path that Git will use, even if this is a brand new system. This may pose problems for git config --list --show-origin --show-scope
.
I can't figure out how to disable the hint in the command below, but that would work great.
git -c 'core.editor=echo' config --global --edit
2 answers
You are accessing this answer with a direct link, so it's being shown above all other answers regardless of its score. You can return to the normal view.
With help from hkotsubo in the comments, it seems you can follow the behavior described by Git's documentation. This will work until they change it, at least for your *Nixes and *BSDs:
path="${XDG_CONFIG_HOME:-$HOME/.config}/git/config"
[[ -f "$path" ]] && echo "$path" || echo "$HOME/.gitconfig"
This works for me in both bash
and zsh
on Debian 12. I can't guarantee it will work the same on every platform and shell.
EDITOR=echo git config --global --edit 2>/dev/null
or, if you prefer not to rely on environment variables:
git -c "core.editor=echo" config --global --edit 2>/dev/null
This is based on your original attempt, with an additional stream-specific redirection which gets rid of "hint: Waiting for your editor to close the file..." because this hint is (conveniently) written to stderr whereas the actual output goes to stdout.
2 comment threads