====== Bir Bilgisayarda Birden Fazla Githup Hesabı Kullanımı ====== 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. - Tüm hesaplar için SSH anahtarları oluşturulması - SSH anahtarlarının SSH Agent'a eklenmesi - SSH public anahtarların Githup'a eklenmesi - Ayar dosyası oluşturulması ve Host girdilerinin hazırlanması - Githup repoları kopyalanırken farklı hesapların kullanılması ===== Tüm hesaplar için SSH Anahtarlarının Oluşturulması ===== 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__\ - Git Bash'i aç ve sırasıyla aşağıdaki kodları yaz. cd ~ mkdir .ssh # Klasör zaten varsa yukarıdakinde hata verecektir. Varsa zaten o klasörü kullanıcaz. cd .ssh eval `ssh-agent -s` - Aşağıdaki kodu kullanarak her hesabın için ilgili klasörde ssh anahtarları oluştur. 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. ===== SSH Anahtarlarının SSH Agent'a Eklenmesi ===== 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__ ===== SSH Public Anahtarının Githup'a Eklenmesi ===== Oluşan ''.pub'' dosyalarını herhangi bir metin editörü ile aç ve içeriğini kopyala. [[https://github.com/settings/keys|https://github.com/settings/keys]] adresine giderek. **New SSH key** kısmından ekle. //Title// kısmına istediğini yazabilirsin. ===== Config Dosyası oluşturma ve hazırlama ===== - Git Bash üzerinden ''touch config'' komutunu gir. - Yukarıdaki kod o klasörde **config** isminde uzantısız bir dosya oluşturacaktır. O dosyayı herhangi bir metin editörü ile aç ve içerisine aşağıdakileri yapıştır. #__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. ===== Githup Repolarını Farklı Hesaplar Kullanarak Klonlama ===== 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__ **Kaynak**: [[https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent]] [[tr:cs:git:multipleaccount|UCH Viki]]'den alınmıştır. https://wiki.ulascemh.com/doku.php?id=tr:cs:git:multipleaccount