У меня были такие же потребности, но я хотел, чтобы все разделы .gitconfig могли быть переопределены, а не только user.email и user.name.
Поскольку я ничего не нашел, я сделал это: https://github.com/arount/recursive-gitconfig
Вот текущий код , но, пожалуйста, обратитесь к исходному коду github для получения последних обновлений:
# Look for closest .gitconfig file in parent directories
# This file will be used as main .gitconfig file.
function __recursive_gitconfig_git {
gitconfig_file=$(__recursive_gitconfig_closest)
if [ "$gitconfig_file" != '' ]; then
home="$(dirname $gitconfig_file)/"
HOME=$home /usr/bin/git "$@"
else
/usr/bin/git "$@"
fi
}
# Look for closest .gitconfig file in parents directories
function __recursive_gitconfig_closest {
slashes=${PWD//[^\/]/}
directory="$PWD"
for (( n=${#slashes}; n>0; --n ))
do
test -e "$directory/.gitconfig" && echo "$directory/.gitconfig" && return
directory="$directory/.."
done
}
alias git='__recursive_gitconfig_git'
Это позволяет мне использовать определенный .gitconfig в зависимости от того, какой репозиторий яиграть с.
Надеюсь, это может помочь некоторым из вас