Das klingt sehr ähnlich zu meiner aktuellen Arbeit. Es scheint, dass Sie bereits eine separate Datei eingerichtet haben. Daher müssen ssh-keys
Sie auch eine ~/.ssh/config
Datei erstellen und diese mit ähnlichen Informationen füllen:
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
Jede Eigenschaft klingt ziemlich selbsterklärend, aber die IdentitiesOnly
eine. Ich werde nicht versuchen zu erklären, wofür das ist, aber das ist in meinem aktuellen Setup und funktioniert gut.
Es ist auch erwähnenswert, dass dies Host URL
nur ein Zeiger ist, um die richtigen Benutzereinstellungen zu erhalten, und keinen Einfluss darauf hat, wie die Dateien korrekt auf Ihre Ziel- HostName
URL übertragen werden.
Jetzt müssen Sie nur noch sicherstellen, dass Ihre origin
(oder eine remote
allgemein) URL mit der richtigen Host
URL in Ihren jeweiligen Repos übereinstimmt, abhängig von Ihrem Benutzernamen. Wenn Sie bereits über persönliche Repos verfügen, können Sie die .git/config
Datei dieses Repos in Ihrem Texteditor bearbeiten :
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@personal.github.com:PERSONAL_GITHUB_USERNAME/project.git
oder machen Sie es über die Kommandozeile:
git remote set-url origin git@personal.github.com:PERSONAL_GITHUB_USERNAME/project.git
Ebenso zu Ihrer Arbeit:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@work.github.com:your_work_organization/project.git
oder wieder über die Kommandozeile:
git remote set-url origin git@work.github.com:your_work_organization/project.git
Natürlich können Sie jederzeit eine Ihrer Host
URLs in Ihrer ~/.ssh/config
Datei als einfach festlegen
Host github.com
Früher habe ich nur work.github.com
die Konfigurationsbeziehungen einfacher gesehen.
Sobald diese alle eingestellt sind, sollten Sie in der Lage sein, auf die jeweilige Fernbedienung zu drücken.
BEARBEITEN
Eine Sache, die ich gerade selbst herausgefunden habe, ist, dass git Ihre Commits als dieser E-Mail-Benutzer anzeigt, wenn Sie jemals globale Git-Konfigurationswerte für Ihren user.email
Wert festlegen (und ich vermute, dass user.name
dies auch einen anderen Wert senden würde). Um dies zu umgehen, können Sie die globalen Git-Konfigurationseinstellungen in Ihrem lokalen Repository überschreiben:
$ git config user.name "John Doe"
$ git config user.email johndoe@example.com
Dies sollte nun Commits als korrekter Benutzer für dieses Repo senden.