Git Kurulumu ve Yapılandırma
Giriş: Neden Kurulum Dersi?
"Kurulum zaten basit, neden bir ders var?" diyebilirsin. Haklısın — Git'i kurmak genelde birkaç dakika. Ama doğru yapılandırmak çoğu insanın atladığı ve sonra sorun yaşadığı kısım.
Düşün: Bir fotoğraf makinesi aldın. Kutudan çıkardın, pil taktın. Ama tarih/saat ayarlamadın, adını yazmadın, çekim kalitesini ayarlamadın. Çektiğin fotoğraflarda tarih yanlış, kimin çektiği belli değil. Fotoğraf makinesi çalışıyor ama iş görmüyor.
Git de böyle. Kurarsın ama yapılandırmazsanız:
Commit'lerde adın ve e-postan eksik kalır
Editörün yanlış açılır (ve sıkışırsın)
SSH ayarın yoksa her push'ta şifre sorar
Satır sonu (line ending) sorunları Windows'ta kabus olur
Bu derste Git'i hem kuracağız hem de profesyonel seviyede yapılandıracağız.
🎬 Analoji: Yeni Bir Eve Taşınmak
Git kurmak, yeni bir eve taşınmak gibi:
Evi al (kurulum) — Anahtarı aldın, kapıyı açtın
Mobilyaları yerleştir (config) — Adını, ayarlarını düzenle
Kapıya kilit tak (SSH) — Güvenli erişim ayarla
Komşularla tanış (GitHub bağlantısı) — Uzak dünya ile bağlan
Şimdi adım adım ilerleyelim.
Git Kurulumu
Windows'ta Git Kurulumu
Windows'ta Git'i kurmanın en yaygın yolu Git for Windows paketini kullanmaktır.
Adım 1: https://git-scm.com adresine git ve "Download for Windows" butonuna tıkla.
Adım 2: İndirilen .exe dosyasını çalıştır.
Adım 3: Kurulum sihirbazında önemli seçenekler:
Kurulum Ekranları — Önerilen Seçimler:
1. Components: ✅ Git Bash Here (sağ tık menüsüne ekler)
✅ Git GUI Here
✅ Git LFS
2. Default Editor: "Use Visual Studio Code as Git's default editor"
(Vim bilmiyorsan Vim seçme — çıkamazsın 😅)
3. Default Branch: "Override the default branch name: main"
(Eski varsayılan "master" yerine "main" kullan)
4. PATH: "Git from the command line and also from 3rd-party software"
(Git'i her yerden kullanabilmek için)
5. SSH: "Use bundled OpenSSH"
6. Line Endings: "Checkout Windows-style, commit Unix-style"
(Windows'ta CRLF, commit'te LF — en güvenli seçenek)Adım 4: Kurulumu tamamla ve terminali aç:
# Git Bash'i aç (veya PowerShell/CMD)
$ git --version
git version 2.43.0.windows.1⚠️ Dikkat: Windows'ta Git Bash kullanmanı öneriyorum. Bash, Linux/Mac komutlarıyla çalışır ve internet üzerindeki Git kaynaklarının çoğu Bash komutları gösterir. PowerShell veya CMD de çalışır ama bazı komutlar farklı olabilir.
macOS'ta Git Kurulumu
Mac'te Git'in zaten kurulu olma ihtimali yüksek. Kontrol edelim:
$ git --version
git version 2.39.3 (Apple Git-145)Eğer kurulu değilse, macOS sana Xcode Command Line Tools yüklemeyi önerecektir. Kabul et.
Alternatif: Homebrew ile kurulum (önerilen)
Homebrew, macOS'un paket yöneticisidir. Git'in en güncel versiyonunu almak için:
# Homebrew yoksa önce onu kur
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Git'i kur
$ brew install git
# Versiyonu kontrol et
$ git --version
git version 2.43.0💡 İpucu: Apple'ın kendi Git versiyonu genelde biraz geride kalır. Homebrew ile kurduğunda her zaman en güncel versiyonu alırsın.
brew upgrade gitile güncelleme de kolay.
Linux'ta Git Kurulumu
Dağıtıma göre değişir ama hepsi çok basit:
# Ubuntu / Debian
$ sudo apt update
$ sudo apt install git
# Fedora
$ sudo dnf install git
# Arch Linux
$ sudo pacman -S git
# CentOS / RHEL
$ sudo yum install git
# Kurulumu doğrula
$ git --version
git version 2.43.0En güncel versiyon için (Ubuntu):
$ sudo add-apt-repository ppa:git-core/ppa
$ sudo apt update
$ sudo apt install git
$ git --version
git version 2.43.0Git Yapılandırması: git config
Git'i kurduk. Şimdi onu tanıyacağız ve kendimizi tanıtacağız.
Yapılandırma Seviyeleri
Git'in üç yapılandırma seviyesi var. Bunlar CSS'teki specificity gibi çalışır — daha spesifik olan kazanır:
┌──────────────────────────────────────────────────────┐
│ System (/etc/gitconfig) │
│ Tüm kullanıcılar, tüm repolar için geçerli │
│ │
│ ┌──────────────────────────────────────────────┐ │
│ │ Global (~/.gitconfig) │ │
│ │ Bu kullanıcının tüm repoları için geçerli │ │
│ │ │ │
│ │ ┌──────────────────────────────────────┐ │ │
│ │ │ Local (.git/config) │ │ │
│ │ │ Sadece bu repo için geçerli │ │ │
│ │ │ ⬆️ EN YÜKSEK ÖNCELİK │ │ │
│ │ └──────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────┘System: Bilgisayardaki tüm kullanıcılar için. Nadiren dokunursun.
Global: Senin kullanıcı hesabın için. En çok bunu kullanacağız.
Local: Sadece o repo için. Farklı projeler için farklı ayar gerektiğinde.
İsim ve E-posta Ayarı (Zorunlu!)
Bu, Git kurulumundan sonra yapman gereken ilk şey. Bunlar her commit'e damgalanır:
$ git config --global user.name "Tolgahan Kaya"
$ git config --global user.email "tolgahan@example.com"Bu bilgiler neden önemli? Çünkü her commit'te gözükür:
$ git log --oneline
a1b2c3d (HEAD -> main) İlk commit
# Detaylı görelim:
$ git log -1
commit a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0
Author: Tolgahan Kaya <tolgahan@example.com>
Date: Mon Mar 1 10:00:00 2026 +0300
İlk commit⚠️ Dikkat: Bu ayarları yapmazsan, Git commit atarken seni uyarır veya sistemin hostname ve kullanıcı adını kullanır — ki bu genelde istediğin şey değildir.
user.name "root"veuser.email "root@localhost"olarak gözüken commit'ler profesyonel bir projede hoş karşılanmaz.
Farklı proje için farklı kimlik:
Diyelim ki kişisel projelerinde tolgahan@gmail.com ama iş projelerinde tolgahan@sirket.com kullanmak istiyorsun:
# Global ayar (varsayılan)
$ git config --global user.email "tolgahan@gmail.com"
# Sadece iş projesinde (o repoda)
$ cd ~/work/sirket-projesi
$ git config --local user.email "tolgahan@sirket.com"Local ayar, global'i ezer. O repoda yaptığın commit'ler iş e-postanla kayıt olur.
Varsayılan Editör
Git bazen senden bir metin girmeni ister (özellikle commit mesajı yazarken). Varsayılan editörü ayarla:
# VS Code (en popüler seçim)
$ git config --global core.editor "code --wait"
# Nano (basit terminal editörü)
$ git config --global core.editor "nano"
# Vim (deneyimliler için)
$ git config --global core.editor "vim"
# Sublime Text
$ git config --global core.editor "subl -n -w"--wait bayrağı önemli: Git, editörü açar ve senin düzenleme yapıp kaydetmeni bekler. Bu bayrak olmadan Git hemen devam eder ve boş mesaj alır.
💡 İpucu: Eğer yanlışlıkla Vim'e düştüysen:
ESCtuşuna bas, sonra:q!yaz ve Enter'a bas. Bu seni dosyayı kaydetmeden çıkarır. Bu bilgi hayat kurtarır — ciddi söylüyorum.
Varsayılan Branch İsmi
Eski Git versiyonlarında ilk branch'in adı masterdı. Modern standart main kullanmak:
$ git config --global init.defaultBranch mainBu ayardan sonra git init ile oluşturulan tüm yeni repolar main branch'i ile başlar.
Satır Sonu Ayarları (Line Endings)
Bu, özellikle Windows kullanıcıları için kritik. Windows CRLF (\r\n), Linux/Mac LF (\n) kullanır. Ekipte karışık işletim sistemi varsa sorun olur.
# Windows'ta:
$ git config --global core.autocrlf true
# Checkout: LF → CRLF, Commit: CRLF → LF
# Mac/Linux'ta:
$ git config --global core.autocrlf input
# Checkout: dokunma, Commit: CRLF → LF (yanlışlıkla CRLF girdiyse düzelt)Renklendirme
Git çıktılarını renkli görmek okunaklığı artırır:
$ git config --global color.ui autoBu genelde varsayılan olarak açıktır ama emin olmak için ayarla.
Tüm Ayarları Görüntüleme
# Tüm aktif ayarları gör
$ git config --list
user.name=Tolgahan Kaya
user.email=tolgahan@example.com
core.editor=code --wait
init.defaultbranch=main
core.autocrlf=true
color.ui=auto
# Belirli bir ayarı gör
$ git config user.name
Tolgahan Kaya
# Ayarın hangi dosyadan geldiğini gör
$ git config --show-origin user.name
file:/home/tolgahan/.gitconfig Tolgahan KayaAyar Silme
# Bir ayarı sil
$ git config --global --unset user.name
# Bir bölümü tamamen sil
$ git config --global --remove-section userFaydalı Alias'lar (Kısayollar)
Git komutları uzun olabilir. Alias'lar, sık kullandığın komutlara kısayol tanımlar:
# Kısa log görünümü
$ git config --global alias.lg "log --oneline --graph --all --decorate"
# Durum kısayolu
$ git config --global alias.st "status"
# Kısa commit
$ git config --global alias.cm "commit -m"
# Branch listesi
$ git config --global alias.br "branch"
# Checkout kısayolu
$ git config --global alias.co "checkout"
# Son commit'i göster
$ git config --global alias.last "log -1 HEAD"
# Unstage (staging'den çıkar)
$ git config --global alias.unstage "restore --staged"Kullanımı:
# Artık şunu yazmak yerine:
$ git log --oneline --graph --all --decorate
# Şunu yazabilirsin:
$ git lg
* a1b2c3d (HEAD -> main) Feature X eklendi
* d4e5f6g Login sayfası
* h7i8j9k İlk commitSSH Key Oluşturma ve Yapılandırma
SSH Neden Gerekli?
GitHub, GitLab gibi platformlara kodu göndermek (push) için kimliğini doğrulamalısın. İki yol var:
HTTPS: Her seferinde kullanıcı adı/şifre veya token girersin
SSH: Bir kere anahtar çifti oluşturursun, sonra şifresiz bağlanırsın
SSH, hem daha güvenli hem daha pratik. Bir kere ayarla, bir daha dokunma.
SSH Nasıl Çalışır?
┌──────────────────────────────────────────────────────┐
│ SSH Key Çifti │
│ │
│ 🔑 Private Key (Özel Anahtar) │
│ ~/.ssh/id_ed25519 │
│ ❌ KİMSEYLE PAYLAŞMA! Bilgisayarında kalır. │
│ │
│ 🔓 Public Key (Genel Anahtar) │
│ ~/.ssh/id_ed25519.pub │
│ ✅ GitHub'a, GitLab'a ekle. Paylaşılabilir. │
│ │
│ Mantık: Kapının kilidi (public) herkeste olabilir │
│ ama anahtarı (private) sadece sende. │
└──────────────────────────────────────────────────────┘Bunu bir asma kilit gibi düşün:
Public key = açık asma kilit — GitHub'a veriyorsun, "benim mesajlarımı bununla kilitle" diyorsun
Private key = anahtarın — sadece sen açabilirsin
SSH Key Oluşturma
# Ed25519 algoritması ile key oluştur (modern, güvenli, hızlı)
$ ssh-keygen -t ed25519 -C "tolgahan@example.com"Terminal şunları soracak:
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/tolgahan/.ssh/id_ed25519):
# Enter'a bas — varsayılan konum iyi
Enter passphrase (empty for no passphrase):
# Güçlü bir parola gir (önerilir) veya boş bırak
Enter same passphrase again:
# Aynı parolayı tekrar gir
Your identification has been saved in /home/tolgahan/.ssh/id_ed25519
Your public key has been saved in /home/tolgahan/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx tolgahan@example.com
The key's randomart image is:
+--[ED25519 256]--+
| .oo. |
| . o.o |
| = +.o |
| . B.= |
| . S.=.o |
| . + o.+. |
| + o.+. |
| . +.o.+ |
| o.oo=. |
+----[SHA256]-----+SSH Agent'a Key Ekleme
SSH agent, key'ini bellekte tutar. Her kullanımda parola girmeni önler:
# SSH agent'ı başlat
$ eval "$(ssh-agent -s)"
Agent pid 12345
# Key'i agent'a ekle
$ ssh-add ~/.ssh/id_ed25519
Identity added: /home/tolgahan/.ssh/id_ed25519 (tolgahan@example.com)macOS için ek adım: Keychain'e kaydet ki bilgisayarı yeniden başlattığında tekrar ekleme:
# macOS Keychain'e kaydet
$ ssh-add --apple-use-keychain ~/.ssh/id_ed25519Ve ~/.ssh/config dosyasına ekle:
Host github.com
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519Public Key'i GitHub'a Ekleme
# Public key'i kopyala
$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG... tolgahan@example.com
# Bu çıktıyı kopyala (tamamını!)GitHub'da:
Settings → SSH and GPG keys → New SSH key
Title: "Kişisel Laptop" (tanımlayıcı bir isim)
Key type: "Authentication Key"
Key: Kopyaladığın public key'i yapıştır
Add SSH key butonuna tıkla
Bağlantıyı Test Etme
$ ssh -T git@github.com
Hi tolgahan! You've been successfully authenticated, but GitHub does
not provide shell access.Bu mesajı görüyorsan, SSH bağlantın çalışıyor! 🎉
Eğer hata alırsan:
# Detaylı debug modu
$ ssh -vT git@github.com
# Çıktıda hangi key'i denediğini, nerede takıldığını görebilirsinÖnerilen Global Yapılandırma
İşte hepsini bir arada, kopya yapıştır yapabileceğin bir yapılandırma:
# Kimlik
git config --global user.name "Adın Soyadın"
git config --global user.email "email@example.com"
# Editör
git config --global core.editor "code --wait"
# Varsayılan branch
git config --global init.defaultBranch main
# Satır sonu (Windows: true, Mac/Linux: input)
git config --global core.autocrlf input
# Renklendirme
git config --global color.ui auto
# Pull stratejisi (merge yerine rebase — temiz geçmiş)
git config --global pull.rebase true
# Push davranışı (sadece aktif branch'i push'la)
git config --global push.default current
# Alias'lar
git config --global alias.st "status"
git config --global alias.cm "commit -m"
git config --global alias.co "checkout"
git config --global alias.br "branch"
git config --global alias.lg "log --oneline --graph --all --decorate"
git config --global alias.last "log -1 HEAD"
git config --global alias.unstage "restore --staged"Yapılandırma Dosyasını Doğrudan Düzenleme
Tüm global ayarlar ~/.gitconfig dosyasında saklanır. İstersen doğrudan düzenleyebilirsin:
$ git config --global --editveya
$ cat ~/.gitconfig
[user]
name = Tolgahan Kaya
email = tolgahan@example.com
[core]
editor = code --wait
autocrlf = input
[init]
defaultBranch = main
[color]
ui = auto
[pull]
rebase = true
[push]
default = current
[alias]
st = status
cm = commit -m
co = checkout
br = branch
lg = log --oneline --graph --all --decorate
last = log -1 HEAD
unstage = restore --stagedBu bir INI dosya formatı. Elle düzenleme de çok kolay.
Kurulumu Doğrulama: Kontrol Listesi
Her şeyin doğru ayarlandığından emin olalım:
# 1. Git versiyonu
$ git --version
git version 2.43.0 ✅
# 2. İsim ayarı
$ git config user.name
Tolgahan Kaya ✅
# 3. E-posta ayarı
$ git config user.email
tolgahan@example.com ✅
# 4. Editör
$ git config core.editor
code --wait ✅
# 5. Varsayılan branch
$ git config init.defaultBranch
main ✅
# 6. SSH key var mı?
$ ls ~/.ssh/id_ed25519.pub
/home/tolgahan/.ssh/id_ed25519.pub ✅
# 7. GitHub SSH bağlantısı
$ ssh -T git@github.com
Hi tolgahan! You've been successfully authenticated... ✅Yedi adım da tamam mı? Mükemmel. Git'e hazırsın.
Sık Karşılaşılan Kurulum Sorunları
1. "git: command not found"
Git kurulmamış veya PATH'e eklenmemiş.
# Linux: Kur
$ sudo apt install git
# Mac: Xcode tools yükle
$ xcode-select --install
# Windows: Git for Windows'u yeniden kur,
# "Git from the command line" seçeneğini seç2. SSH: "Permission denied (publickey)"
# Key agent'ta var mı?
$ ssh-add -l
# Eğer "The agent has no identities" diyorsa:
$ ssh-add ~/.ssh/id_ed25519
# Key GitHub'a eklenmiş mi?
# GitHub → Settings → SSH keys → kontrol et
# Doğru key kullanılıyor mu?
$ ssh -vT git@github.com
# "Offering public key" satırını ara3. "warning: LF will be replaced by CRLF"
# Bu sadece bir uyarı — tehlikeli değil
# Windows'ta autocrlf ayarını kontrol et:
$ git config core.autocrlf
true # Bu doğru4. Vim'den çıkamıyorum!
# Vim'den çıkış:
# 1. ESC tuşuna bas
# 2. :q! yaz ve Enter'a bas (kaydetmeden çık)
# 3. Gelecekte başına gelmesin diye editörü değiştir:
$ git config --global core.editor "code --wait"Özet
Git'i Windows (Git for Windows), macOS (Homebrew), Linux (apt/dnf/pacman) ile kurabilirsin
git config --globalile isim, e-posta ve editör ayarla — bu üçü zorunluYapılandırma üç seviyede çalışır: system < global < local — spesifik olan kazanır
SSH key oluştur ve GitHub'a ekle — her push'ta şifre girmekten kurtul
Alias'lar tanımla — sık kullandığın komutları kısalt, zamanından kazan
Tüm ayarlar
~/.gitconfigdosyasında saklanır — istersen elle de düzenleyebilirsin
*Bir sonraki derste Git'in temel kavramlarını — repository, commit, staging area, working directory — derinlemesine öğreneceğiz. Git'in beyni nasıl çalışıyor, gelin bakalım!*
AI Asistan
Sorularını yanıtlamaya hazır