cela semble très similaire à mon travail actuel mis en place. il semble que vous avez déjà configuré votre séparée ssh-keys
de sorte que vous devez également créer un ~/.ssh/config
le fichier et de le remplir avec des informations similaires à ceci:
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
Tous les biens des sons assez explicite, mais l' IdentitiesOnly
on. Je ne vais pas essayer d'expliquer ce que c'est, mais c'est dans ma configuration actuelle et fonctionne très bien.
Il est également intéressant de noter que l' Host URL
est un pointeur pour saisir la correcte des paramètres de l'utilisateur et de ne pas avoir une incidence sur l'obtention de la correctement les fichiers de votre cible HostName
d'url.
Maintenant, il vous suffit de vous assurer que votre origin
(ou tout remote
en général) url de match correcte Host
url dans votre repos en fonction de votre nom d'utilisateur. Si vous avez déjà existants personnels repos, vous pouvez modifier que les pensions de l' .git/config
le fichier dans votre éditeur de texte:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@personal.github.com:PERSONAL_GITHUB_USERNAME/project.git
ou de le faire via la ligne de commande:
git remote set-url origin git@personal.github.com:PERSONAL_GITHUB_USERNAME/project.git
De même pour votre travail:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@work.github.com:your_work_organization/project.git
ou encore, via la ligne de commande:
git remote set-url origin git@work.github.com:your_work_organization/project.git
Bien sûr, vous pouvez toujours demander à un de vos Host
des url dans votre ~/.ssh/config
le fichier que juste
Host github.com
J'ai seulement utilisé work.github.com
voir la config des relations plus facile.
Une fois tous ensemble, vous devriez être en mesure de pousser à chaque distance.
MODIFIER
Une chose à noter que je viens de trouver moi-même, c'est que si jamais vous set global git config valeurs pour votre user.email
de la valeur (et je devine user.name
enverrait une autre valeur), git va montrer votre s'engage en tant que e-mail de l'utilisateur. Pour contourner ce problème, vous pouvez remplacer le git config paramètres dans votre dépôt local:
$ git config user.name "John Doe"
$ git config user.email johndoe@example.com
Cela devrait maintenant envoyer jusqu's'engage en tant que l'utilisateur approprié pour que les pensions de titres.