bu, mevcut çalışma kurulumuma çok benziyor. Görünüşe göre zaten ayrı ayarlamışsınız, ssh-keysbu nedenle bir ~/.ssh/configdosya oluşturmanız ve buna benzer bilgilerle doldurmanız gerekir:
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
Her özellik oldukça açıklayıcı geliyor ama IdentitiesOnlybiri. Bunun ne için olduğunu açıklamaya çalışmayacağım, ancak bu benim mevcut kurulumumda ve iyi çalışıyor.
Ayrıca Host URL, doğru kullanıcı ayarlarını almak için sadece bir işaretçi olduğunu ve dosyaları hedef HostNameURL'nize doğru bir şekilde alma üzerinde herhangi bir etkisi olmadığını belirtmek gerekir .
Şimdi , kullanıcı adınıza bağlı olarak, URL'nizin origin(veya remotegenel olarak herhangi birinin ) Hostilgili depolarınızdaki doğru url ile eşleştiğinden emin olmanız yeterlidir . Halihazırda kişisel depolarınız varsa, o deponun .git/configdosyasını metin düzenleyicinizde düzenleyebilirsiniz:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@personal.github.com:PERSONAL_GITHUB_USERNAME/project.git
veya bunu komut satırı aracılığıyla yapın:
git remote set-url origin git@personal.github.com:PERSONAL_GITHUB_USERNAME/project.git
İşinize benzer şekilde:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@work.github.com:your_work_organization/project.git
veya yine komut satırı aracılığıyla:
git remote set-url origin git@work.github.com:your_work_organization/project.git
Tabii ki, her zaman birini ayarlayabilirsiniz Hostsizin de URL'ler ~/.ssh/configgibi dosyada
Host github.com
Ben sadece work.github.comyapılandırma ilişkilerini daha kolay görüyordum.
Bunların tümü ayarlandıktan sonra, her bir uzaktan kumandaya basabilmelisiniz.
DÜZENLE
Az önce öğrendiğim bir şey de, eğer değeriniz için global git config değerleri belirlerseniz user.email(ve sanırım user.namefarklı bir değer göndereceğini tahmin ediyorum), git'in taahhütlerinizi o e-posta kullanıcısı olarak göstereceği. Bunu aşmak için, yerel deponuzdaki global git yapılandırma ayarlarını geçersiz kılabilirsiniz:
$ git config user.name "John Doe"
$ git config user.email johndoe@example.com
Bu, şimdi bu repo için doğru kullanıcı olarak taahhütleri göndermelidir.