У меня есть рабочий компьютер, и он настроен во всем мире для использования моего рабочего письма и имени при совершении. Это хорошо. Тем не менее, я хотел бы сделать какое-то правило, в котором говорится: "Если источником репо является github, используйте пользователя X и адрес электронной почты Y"
Я понимаю, что вы можете сделать запись в config для каждого репозитория, но я бы хотел, чтобы он был более автоматическим: если клон является github, он должен использовать детали пользователя github. Если я клонирую с работы, он должен использовать детали работы.
Есть ли способ настроить это глобально на основе удаленного домена? Или другим способом?
ИЗМЕНИТЬ/UPDATE
Я принял ответ ниже, но немного изменил script:
#!/usr/bin/env bash
# "Real" git is the second one returned by 'which'
REAL_GIT=$(which -a git | sed -n 2p)
# Does the remote "origin" point to GitHub?
if ("$REAL_GIT" remote -v 2>/dev/null | grep '^origin\b.*github.com.*(push)$' >/dev/null 2>&1); then
# Yes. Set username and email that you use on GitHub.
export GIT_AUTHOR_NAME=$("$REAL_GIT" config --global user.ghname)
export GIT_AUTHOR_EMAIL=$("$REAL_GIT" config --global user.ghemail)
fi
"$REAL_GIT" "[email protected]"
Основное дополнение - это требование для двух значений git config
.
git config --global user.ghname "Your Name"
git config --global user.ghemail "[email protected]"
Это позволяет избежать жесткого кодирования значений в script, что делает его более переносимым. Может быть?