Rehber

Git yapılandırması: git config, ad, e-posta ve SSH anahtarları

Güncellendi: · Skillaria.Top

Temel Git yapılandırması git config --global user.name ve git config --global user.email komutlarıyla yapılır; bunlar commit'lerinizi imzalar. GitHub'a parolasız giriş için ssh-keygen -t ed25519 ile anahtar oluşturun, açık anahtarı hesap ayarlarına ekleyin ve ssh -T git@github.com ile bağlantıyı test edin.

Bir dakikada minimum Git yapılandırması

Kurulumdan hemen sonra dört komut çalıştırın. İlk ikisi olmadan Git commit yapmayı reddeder; diğerleri sık karşılaşılan rahatsızlıkları önler.

git config --global user.name "Ayşe Demir"
git config --global user.email "ayse@example.com"
git config --global init.defaultBranch main
git config --global core.editor "code --wait"

Sonucu kontrol edin:

$ git config --global --list
user.name=Ayşe Demir
user.email=ayse@example.com
init.defaultbranch=main
core.editor=code --wait

Aşağıda her ayarın ne yaptığını, Git'in bunları nerede sakladığını ve GitHub'a SSH ile nasıl bağlanacağınızı anlatıyoruz.

git config nasıl çalışır: üç seviye

git config parametreleri üç dosyadan birinde okur ve yazar. Daha dar seviye, daha geniş olanı geçersiz kılar.

SeviyeBayrakDosyaKimi etkiler
Sistem--system/etc/gitconfig (Windows'ta Git'in kurulu olduğu klasörde)Bilgisayardaki tüm kullanıcıları
Genel--global~/.gitconfig ya da ~/.config/git/configKendi tüm repository'leriniz
Yerel--local (varsayılan)Repository içindeki .git/configYalnızca bu repository

Kişisel ayarların çoğu genel yapılandırılır, istisnalar yerel yapılır. Örneğin bir şirketin projelerinde kullanılacak iş e-postasını, --global bayrağı olmadan doğrudan o repository'nin içinde tanımlarsınız.

Yararlı git config komutları

git config user.email                    # mevcut değeri göster
git config --list --show-origin          # tüm ayarlar ve her birinin kaynak dosyası
git config --global --edit               # ~/.gitconfig dosyasını editörde aç
git config --global --unset core.editor  # bir parametreyi sil

--show-origin hata ayıklarken en iyi yardımcınızdır: «neden yanlış e-posta kullanılıyor?» sorusunun cevabını, değerin geldiği dosyayı göstererek verir.

Ad ve e-posta neden önemli

Her commit, yazarın adını ve e-postasını kalıcı olarak saklar. Bunlar oturum açma bilgisi ya da parola değildir; Git bunları doğrulamaz. Ancak GitHub ve GitLab, commit'leri e-posta üzerinden hesabınıza bağlar: adres profilinizdeki doğrulanmış e-postalardan biriyle eşleşmezse, commit'ler etkinlik grafiğinde sayılmaz ve avatarsız görünür.

Ad veya e-postayı sonradan değiştirmek, geçmişi yeniden yazmadan mümkün değildir; bu yüzden ilk commit'ten önce ayarları kontrol edin.

E-postanızı gizleyin

Repository herkese açıksa, e-postanız geçmişi inceleyen herkes tarafından görülebilir. GitHub, ID+kullanici@users.noreply.github.com biçiminde bir servis adresi önerir (ayarlarda Emails bölümünde). Bunu Git'e tanımlayın:

git config --global user.email "12345678+ayse@users.noreply.github.com"

İş ve kişisel projeler için farklı e-posta

Her iş repository'sini elle ayarlamamak için koşullu yapılandırma eklentisini kullanın. ~/.gitconfig dosyasına:

[includeIf "gitdir:~/work/"]
    path = ~/.gitconfig-work

Ve ~/.gitconfig-work dosyasına:

[user]
    email = ayse@sirket.com

Artık ~/work/ içindeki tüm repository'ler iş e-postasını otomatik kullanır. Yoldaki sondaki eğik çizgi zorunludur.

Diğer faydalı Git ayarları

Editör

Git, commit mesajları, etkileşimli rebase ve birleştirmeler için bir editör açar. Varsayılan çoğu zaman Vim'dir. Seçenekler:

git config --global core.editor "code --wait"   # VS Code
git config --global core.editor "nano"          # Nano
git config --global core.editor "subl -n -w"    # Sublime Text

Varsayılan branch

init.defaultBranch main, yeni repository'lerde ilk branch'in adını belirler (Git 2.28 ile geldi). Bu ayar yoksa Git master oluşturur ve adı değiştirme önerisi gösterir.

Satır sonları

git config --global core.autocrlf true    # Windows
git config --global core.autocrlf input   # macOS ve Linux

Böylece repository'de her zaman LF satır sonları tutulur ve ekipte dosyanın tüm satırları değişmiş gibi görünmez.

git pull davranışı

Strateji belirtmezseniz, güncel Git ayrılmış branch'lerde hangi yöntemi kullanacağınızı sorar. Birini seçin:

git config --global pull.rebase false   # birleştirme (merge), eski varsayılan
git config --global pull.rebase true    # yeniden temellendirme, doğrusal geçmiş
git config --global pull.ff only        # yalnızca ileri sarma, yoksa hata

Türkçe karakterli dosya adları ve renkler

git config --global core.quotepath false
git config --global color.ui auto

core.quotepath false, Türkçe karakterli (ç, ğ, ı, ö, ş, ü) dosya adlarının Git çıktısında \303\247 gibi kaçış dizileri yerine doğru görünmesini sağlar.

Takma adlar

git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.lg "log --oneline --graph --decorate --all"
git config --global alias.last "log -1 HEAD"

Artık git lg branch grafiğini çizer, git last son commit'i gösterir.

Ayarlar sonrasında ~/.gitconfig dosyası

[user]
    name = Ayşe Demir
    email = ayse@example.com
[init]
    defaultBranch = main
[core]
    editor = code --wait
    autocrlf = input
    quotepath = false
[pull]
    rebase = false
[alias]
    st = status
    lg = log --oneline --graph --decorate --all

Bu düz bir metin dosyasıdır; elle düzenleyebilir ve bilgisayarlar arasında taşıyabilirsiniz.

Git ile giriş: GitHub'a nasıl bağlanılır

Git'in git login komutu yoktur; yeni başlayanların sık düştüğü bir tuzaktır. Git bir «hesap» saklamaz: kimlik doğrulama, sunucuya (clone, push, fetch) iki protokolden biriyle bağlanırken yapılır.

HTTPSSSH
Adreshttps://github.com/user/repo.gitgit@github.com:user/repo.git
Girişi neyle kanıtlarsınızErişim token'ı ya da tarayıcı girişi (Credential Manager)SSH anahtar çifti
Hesap parolası2021'den beri kabul edilmiyorGerekmez
Ne zaman daha uygunGit Credential Manager'lı Windows, kurumsal proxy'lermacOS, Linux, sunucular, CI

HTTPS ile giriş

Git for Windows ve Git Credential Manager'lı macOS kurulumlarında ilk git push sırasında GitHub girişi için bir tarayıcı penceresi açılır ve bilgiler sistemin kimlik deposunda saklanır. Alternatif olarak GitHub'ın resmi aracı GitHub CLI'dır: gh auth login komutu yetkilendirmeyi adım adım yaptırır ve Git'i de ayarlar. Her şeyi elle yapıyorsanız, GitHub ayarlarında (Developer settings) bir Personal access token oluşturun ve parola yerine onu girin.

Git için SSH: adım adım kurulum

SSH anahtarı bir dosya çiftidir: özel anahtar sizde kalır, genel anahtarı GitHub'a verirsiniz. Sunucu, özel anahtara sahip olduğunuzu doğrular ve bir daha parola sormaz.

1. adım: Anahtar zaten var mı

ls -la ~/.ssh

Orada id_ed25519 ve id_ed25519.pub dosyaları varsa 3. adıma geçin.

2. adım: Anahtarı oluşturun

ssh-keygen -t ed25519 -C "ayse@example.com"

Enter'a basarak anahtarı varsayılan yola kaydedin ve bir parola ifadesi (passphrase) belirleyin; dizüstü bilgisayarınız çalınırsa anahtarı bu korur. Ed25519, önerilen güncel algoritmadır. Eski bir sistem bunu desteklemiyorsa: ssh-keygen -t rsa -b 4096 -C "ayse@example.com".

3. adım: Anahtarı ssh-agent'a ekleyin

Ajan, çözülmüş anahtarı bellekte tutar; böylece her push'ta parola ifadesini yazmazsınız.

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

macOS'ta parola ifadesinin anahtarlıkta (Keychain) saklanması için ~/.ssh/config dosyasına şu satırları ekleyin:

Host github.com
    AddKeysToAgent yes
    UseKeychain yes
    IdentityFile ~/.ssh/id_ed25519

ve ardından ssh-add --apple-use-keychain ~/.ssh/id_ed25519 komutunu çalıştırın.

4. adım: Genel anahtarı GitHub'a ekleyin

cat ~/.ssh/id_ed25519.pub

ssh-ed25519 ile başlayan tüm satırı kopyalayın. GitHub'da Settings → SSH and GPG keys → New SSH key yolunu izleyin, anahtarı yapıştırın ve «Dizüstü 2026» gibi anlaşılır bir ad verin. .pub uzantısı olmayan dosyayı asla paylaşmayın ya da yayımlamayın: o özel anahtardır.

5. adım: Bağlantıyı test edin

$ ssh -T git@github.com
Hi ayse! You've successfully authenticated, but GitHub does not provide shell access.

SSH ilk bağlantıda sunucuya güvenip güvenmediğinizi sorar. Parmak izini GitHub'ın dokümantasyonunda yayımlanan değerle karşılaştırın ve yes yanıtı verin.

6. adım: Repository'yi SSH'a geçirin

Repository HTTPS ile klonlandıysa remote adresini değiştirin:

git remote -v
git remote set-url origin git@github.com:ayse/my-project.git
git push

Aynı bilgisayarda birden çok GitHub hesabı

Bir SSH anahtarı yalnızca bir GitHub hesabına bağlanabilir. İş ve kişisel hesaplar için iki anahtar oluşturun ve ~/.ssh/config içinde sunucu takma adları tanımlayın:

Host github-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_work
    IdentitiesOnly yes

İş repository'lerini bu takma adla klonlayın: git clone git@github-work:sirket/app.git. E-posta için includeIf ile birlikte kullanıldığında iş ve kişisel ortamlar tamamen ayrılmış olur.

Yapılandırmada sık karşılaşılan hatalar

«Please tell me who you are»

user.name ve user.email tanımlı değil. Makalenin başındaki komutları çalıştırıp commit'i tekrarlayın.

«Permission denied (publickey)»

GitHub uygun anahtarı bulamadı. Anahtarın ajana eklendiğini (ssh-add -l), genel kısmın hesaba yüklendiğini kontrol edin; ayrıntıyı ssh -vT git@github.com gösterir.

«Support for password authentication was removed»

HTTPS üzerinden hesap parolanızı girdiniz. Token kullanın, Credential Manager ile giriş yapın ya da SSH'ye geçin.

GitHub'da commit'lerin avatarı yok

git config user.email ile tanımlı e-posta, GitHub profilinize eklenmemiş. Settings → Emails bölümünden ekleyin; eski commit'ler de otomatik bağlanır.

Ağda 22 numaralı port kapalı

GitHub SSH'yi 443 numaralı portta da sunar. ~/.ssh/config dosyasında Host github.com, Hostname ssh.github.com, Port 443 ayarlayın.

Yeni bir bilgisayarda kurulum sırası

  1. Git'i kurun ve git --version ile kontrol edin.
  2. user.name, user.email, init.defaultBranch ve editörü ayarlayın.
  3. ~/.gitconfig dosyasını taşıyın ya da takma adlar ve pull stratejisiyle yeniden oluşturun.
  4. Yeni bir SSH anahtarı oluşturun (gerekmedikçe eski özel anahtarı makineler arasında kopyalamayın) ve GitHub'a ekleyin.
  5. ssh -T git@github.com ile erişimi test edin ve çalışma repository'sini SSH adresiyle klonlayın.

Her cihaz için ayrı bir anahtar kullanmanın bir avantajı da şudur: dizüstü bilgisayarınızı kaybettiğinizde GitHub'dan yalnızca o anahtarı silmeniz yeter; diğer cihazlardaki erişim etkilenmez.

Kısaca

Git yapılandırması üç adımdan oluşur: git config --global ile ad ve e-postayı tanımlamak, editör, varsayılan branch ve pull stratejisini seçmek, ardından GitHub girişini en kolay ve güvenli yol olan SSH anahtarıyla kurmak. Unutmayın: git login diye bir komut yoktur; kimlik doğrulama sunucuya bağlanırken yapılır. Yapılandırma ve SSH erişimi Git kursunda uygulamalı olarak anlatılmaktadır.

Sık sorulan sorular

Windows'ta Git ayarları nerede saklanır?

Genel ayarlar C:\Users\KullaniciAdi\.gitconfig dosyasında, yerel ayarlar her repository'nin .git\config dosyasında tutulur. Tam konumu git config --list --show-origin gösterir.

Git ayarlarını nasıl sıfırlarım?

~/.gitconfig dosyasını silin ya da yeniden adlandırın; Git varsayılan değerlere döner. Tek bir parametreyi git config --global --unset ad ile silebilirsiniz.

Aynı SSH anahtarını hem GitHub hem GitLab için kullanabilir miyim?

Evet, aynı genel anahtarı farklı servislere ekleyebilirsiniz. Tek kısıt: GitHub'da bir anahtar yalnızca bir hesaba bağlanır.

Commit'lerimin GitHub'da «Verified» görünmesi için ne yapmalıyım?

GPG ya da SSH anahtarıyla imzalamayı açın: örneğin git config --global gpg.format ssh, user.signingkey ile genel anahtarın yolunu ve commit.gpgsign true; sonra anahtarı GitHub'a Signing key olarak ekleyin.

Güncelleme sonrası Git'i yeniden yapılandırmam gerekir mi?

Hayır. Güncelleme ~/.gitconfig dosyasına ve ~/.ssh içindeki anahtarlara dokunmaz; tüm ayarlarınız korunur.

Bu konuyu videoyla öğrenin

Bu konu “Sıfırdan Güvenilir Geliştiriciye Git” kursunda uygulamalı olarak ayrıntılı işleniyor.

Kursa git