це звучить дуже схоже на мою поточну створену роботу. здається, ви вже налаштували свій окремий, ssh-keys
тому вам також потрібно створити ~/.ssh/config
файл і заповнити його інформацією, подібною до цієї:
Host work.github.com
HostName github.com
User WORK_GITHUB_USERNAME
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_work_rsa
IdentitiesOnly yes
Host personal.github.com
HostName github.com
User PERSONAL_GITHUB_USERNAME
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_personal_rsa
IdentitiesOnly yes
Кожна властивість звучить досить зрозуміло, але IdentitiesOnly
одна. Я не буду намагатися пояснити, для чого це потрібно, але це в моїй поточній установці і працює нормально.
Варто також зазначити, що Host URL
це лише вказівник на правильні налаштування користувача і не впливає на правильне отримання файлів до цільової HostName
URL-адреси.
Тепер вам просто потрібно переконатися, що ваша origin
(або будь-яка remote
загальна) URL-адреса відповідає правильній Host
URL-адресі у відповідних репозиторіях залежно від вашого імені користувача. Якщо у вас вже є особисті репозитарії, ви можете відредагувати .git/config
файл цього репо в текстовому редакторі:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@personal.github.com:PERSONAL_GITHUB_USERNAME/project.git
або зробіть це за допомогою командного рядка:
git remote set-url origin git@personal.github.com:PERSONAL_GITHUB_USERNAME/project.git
Так само, як і ваша робота:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@work.github.com:your_work_organization/project.git
або знову через командний рядок:
git remote set-url origin git@work.github.com:your_work_organization/project.git
Звичайно, ви завжди можете встановити одну з ваших Host
URL-адрес у своєму ~/.ssh/config
файлі як справедливу
Host github.com
Я звик лише work.github.com
бачити відносини конфігурації простіше.
Після того, як усі вони встановлені, ви зможете натиснути на кожен відповідний пульт.
РЕДАГУВАТИ
Зауважимо одне, що я щойно дізнався, що якщо ви коли-небудь встановлювали для свого user.email
значення глобальні значення конфігурації git (і, я здогадуюсь, воно user.name
також надсилатиме інше значення), git відображатиме ваші коміти як того користувача електронної пошти. Щоб обійти це, ви можете замінити загальні налаштування конфігурації git у вашому локальному сховищі:
$ git config user.name "John Doe"
$ git config user.email johndoe@example.com
Тепер це повинно надсилати коміти як правильний користувач для цього репо.