İçindekiler

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.

  1. Tüm hesaplar için SSH anahtarları oluşturulması
  2. SSH anahtarlarının SSH Agent'a eklenmesi
  3. SSH public anahtarların Githup'a eklenmesi
  4. Ayar dosyası oluşturulması ve Host girdilerinin hazırlanması
  5. 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__\
  1. 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`
  1. 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 adresine giderek. New SSH key kısmından ekle. Title kısmına istediğini yazabilirsin.

Config Dosyası oluşturma ve hazırlama

  1. Git Bash üzerinden touch config komutunu gir.
  2. 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

UCH Viki'den alınmıştır. https://wiki.ulascemh.com/doku.php?id=tr:cs:git:multipleaccount