Windows işletim sistemi için yazıyorum ancak mantık diğer işletim sistemlerinde de çalışmalı. 5 basit aşama ile istediğimiz zaman hesaplar arası geçiş yapabileceğiz.
Windows için, kullanıcı klasöründe olmanız gerekmektedir. Ancak Gİt Bash komut satırını kullanacağımızdan bunu dert etmemize gerek yok. Unix kodları kullanarak işlerimizi halledebiliriz.
C:\Users\__SENIN_KULLANICI_ADIN__\
cd ~ mkdir .ssh # Klasör zaten varsa yukarıdakinde hata verecektir. Varsa zaten o klasörü kullanıcaz. cd .ssh eval `ssh-agent -s`
ssh-keygen -t rsa -C "__MAIL_ADRESIN__" -f "__GITHUP_KULLANICI_ADIN__"
Buradaki -C
anahtarı tanımlamaya yardımcı amaçlı yorum içindir. -f
ise anahtarın kaydedileceği dosyanın ismidir.
Dikkat: Burada yazacağın mail adresinde githup'ın bize tanımladığı mail atılamaz mail adresi olmalıdır. Zorunlu değil ancak asıl mail adresimizi karışıklık olmaması için giçbir git işleminde kullanmamak daha iyidir.
Anahtarları ekledikten sonra .ssh klasörü içerisinde her hesap için bir private bir public dosya oluşması lazım.
Public anahtar .pub
uzantısına sahip olacak ve private anahtar ise bir uzantıya sahip olmayacaktır. İkisininde ismi -f
'den sonra yazdığınla aynı olacaktır.
Tüm hesapların için birer anahtar oluşturduktan sonra devam edebilirsin.
Komut satırında hâla .ssh içerisindeyken aşağıdaki komutla anahtarları agent'a ekleyebilirsin.
ssh-add __GITHUP_KULLANICI_ADI__ ssh-add __GITHUP_KULLANICI_ADI__
Oluşan .pub
dosyalarını herhangi bir metin editörü ile aç ve içeriğini kopyala.
https://github.com/settings/keys adresine giderek. New SSH key kısmından ekle. Title kısmına istediğini yazabilirsin.
touch config
komutunu gir.#__GITUP_KULLANICI_ADI__ account Host github.com-__GITUP_KULLANICI_ADI__ HostName github.com User git IdentityFile ~/.ssh/__GITUP_KULLANICI_ADI__ #__GITHUP_KULLANICI_ADI_2__ account Host github.com-__GITHUP_KULLANICI_ADI_2__ HostName github.com User git IdentityFile ~/.ssh/__GITHUP_KULLANICI_ADI_2__
Kullanıcı adı kısımlarını kendine göre düzenle. Sayıyı istediğin kadar arttırabilirsin.
Aşağıdaki komut ile klonlama yapabilirsin yada direkt HTTPS üzerindende klonlama yapabilirsin.
git clone git@github.com-{__GITHUP_KULLANICI_ADI__}:{__REPO_SAHIBININ_KULLANICI_ADI__}/{__REPO_ADI__}.git
Commitlerin hangi hesapla yapılacağını belirlemek için her repo için ayrı ayrı kullanıcı ayarları yapman gerekmekte. Global ayarlar sadece tek bir hesap için kullanılabilir. Tüm var olan repolarına ve gelecekte klonlayacağın repolarında her zaman aşağıdaki işlemleri yap.
git config user.email "__GITHUP_MAIL_ADRESI__" git config user.name "__GITHUP_KULLANICI_ADI__" git config user.email "__GITHUP_MAIL_ADRESI_2__" git config user.name "__GITHUP_KULLANICI_ADI_2__"
Elbette sayıyı arttırabilirsin.
Son olarak pull ve push kullanabilmek için remote origin eklememiz gerekmekte. Aşağıdaki komutu her repon için çalıştır.
git remote add origin git@github.com-__GITHUP_KULLANICI_ADI__:__GITHUP_KULLANICI_ADI__ git remote add origin git@github.com-__GITHUP_KULLANICI_ADI_2__:__GITHUP_KULLANICI_ADI_2__
UCH Viki'den alınmıştır. https://wiki.ulascemh.com/doku.php?id=tr:cs:git:multipleaccount