Несколько учетных записей GitHub с несколькими ключами S SH, в результате чего несколько участников - PullRequest
0 голосов
/ 21 января 2020

У меня 2 разных аккаунта на Github. И я установил 2 разные клавиши S SH. Зарегистрировал оба ключа на Github с правильной учетной записью и создал файл git config, в котором должны использоваться правильные учетные данные для работы с удаленным репозиторием (ie использует мою личную учетную запись для личной работы и рабочую учетную запись для удаленной работы). Вот как выглядит мой git конфигурационный файл:

Host personal.github.com
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_personal
IdentitiesOnly yes

Host work.github.com
HostName github.com
PreferredAuthentications publickey
User git
IdentityFile ~/.ssh/id_rsa_work
IdentitiesOnly yes

Он работает, я могу клонировать и pu sh проекты.

Проблема:

Допустим, я создал новое удаленное репо в моей рабочей учетной записи. Когда я клонирую проект на моей локальной машине, я использую: git clone git@work.github.com:[username]/my-plan.git

Затем внесите некоторые изменения, зафиксируйте их и отправьте sh обратно в удаленное хранилище. Это работает, но вместо того, чтобы показывать учетные данные моей рабочей учетной записи в разделе «Участники», он фактически показывает мою личную учетную запись.

Если я запускаю git remote -v, я получаю:

origin  git@work.github.com:[username]/my-plan.git (fetch)
origin  git@work.github.com:[username]/my-plan.git (push)

Я не понимаю, почему это происходит, когда связанный ключ S SH подключен к моей рабочей учетной записи, а не к моей личной учетной записи , Что мне нужно сделать, чтобы быть уверенным, что каждый раз, когда я возвращаю sh проект обратно, с моего рабочего, а не личного?

1 Ответ

1 голос
/ 21 января 2020

Я думаю, что проблема не в ваших клавишах S SH, github отличается от пользователя, который "нажал" на коммит и тот, кто "зафиксировал" изменения.

Вы можете использовать свой браузер для перехода к:

https://api.github.com/repos/[username]/[repo]/commits

Каждый коммит будет иметь

  "author": {
    "name": "<author1>",
    "email": "<email1>",
    "date": "2019-09-17T12:56:43Z"
  },
  "committer": {
    "name": "<author2>",
    "email": "<email2>",
    "date": "2019-09-17T12:56:43Z"
  },

Если сообщения электронной почты разные - это проблема, и вы должны настроить свой git для текущего проекта локально (git config user.email "<your email for this repo>").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...