Укажите идентификатор Git на основе хоста SSH или идентификатора - PullRequest
0 голосов
/ 12 сентября 2018

Git мешает мне с обычным

*** Please tell me who you are.
Run
  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.

, на который я обычно отвечаю

git config user.email "me@example.com"
git config user.name "Me Name"

Я не хочу устанавливать вышеуказанное глобально, так как у меня несколько хостов и я хочу использовать разные идентификаторы Git для каждого хоста SSH. Можно ли связать идентификаторы Git с хостами и / или идентификаторами SSH, например, имея какой-то общий файл конфигурации

Host github.com
    IdentityFile ~/.ssh/github_rsa
    user.email "me@example.com"
    user.name "Me Name"
Host gitlab.com
    IdentityFile ~/.ssh/gitlab_rsa
    user.email "another@example.com"
    user.name "Another Name"

1 Ответ

0 голосов
/ 12 сентября 2018

Я не вижу общего способа для этого, но может быть специальное решение, подобное этому:

Создайте файл properties с именем хоста для каждого сервера git, в котором хранятся пользовательские настройки:

echo 'user.email "me@example.com"' > $HOME/.mygitconfig/github.com.user
echo 'user.name "Me Name"' >> $HOME/.mygitconfig/github.com.user

и создайте сценарий для клонирования хранилища по этой линии (не проверено):

cat %HOME/bin/clonerepo

#!/user/bin/bash
git clone  git@$1/$2 .
while IFS=$'\n' read -r user_data; do
   git config $(user_data)
done < $(HOME)/.mygitconfig/$1.user

Вы используете это:

 $HOME/bin/clonerepo github.com path/to/repo.git
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...