Ana Sayfa/Blog/Git Komutları Rehberi: Başlangıçtan İleri Seviyeye

Git Komutları Rehberi: Başlangıçtan İleri Seviyeye

Git, yazılım geliştirmede en yaygın kullanılan dağıtık versiyon kontrol sistemidir. Kodunuzun geçmişini takip etmenizi, farklı özellikler üzerinde paralel çalışmanızı ve ekip arkadaşlarınızla verimli iş birliği yapmanızı sağlar. Bu rehberde temel komutlardan ileri seviye tekniklere kadar Git'in en önemli komutlarını inceliyoruz.

Başlangıç Komutları

git init

Mevcut dizinde yeni bir Git deposu (repository) oluşturur:

git init
# Dizinde .git klasörü oluşturulur

git clone

Uzak bir depoyu yerel bilgisayarınıza kopyalar:

git clone https://github.com/kullanici/proje.git
git clone https://github.com/kullanici/proje.git ozel-klasor-adi

Temel İş Akışı

git add

Değişiklikleri staging area'ya (hazırlık alanı) ekler:

git add dosya.js              # Tek dosya
git add src/                   # Bir dizindeki tüm değişiklikler
git add .                      # Tüm değişiklikler
git add -p                     # Etkileşimli: değişiklikleri parça parça ekle

git commit

Staging area'daki değişiklikleri kalıcı olarak kaydeder:

git commit -m "Kullanıcı giriş formu eklendi"
git commit -am "Hata düzeltildi"   # add + commit (sadece izlenen dosyalar)

İyi commit mesajı yazma kuralları:

git status ve git log

git status                # Çalışma dizini durumu
git log                   # Commit geçmişi
git log --oneline         # Kısa format
git log --graph --all     # Dallanma grafiği
git log -5                # Son 5 commit

Dallanma (Branching)

git branch

git branch                    # Dalları listele
git branch feature/login      # Yeni dal oluştur
git branch -d feature/login   # Dalı sil (merge edilmişse)
git branch -D feature/login   # Dalı zorla sil

git checkout / git switch

git switch feature/login           # Dala geç (modern)
git switch -c feature/signup       # Oluştur ve geç
git checkout feature/login         # Dala geç (eski yöntem)
git checkout -b feature/signup     # Oluştur ve geç (eski)

Birleştirme (Merge)

# feature dalını main'e birleştir
git switch main
git merge feature/login

# Fast-forward merge'ü engelle (merge commit oluştur)
git merge --no-ff feature/login

Rebase

Rebase, bir dalın tabanını (base) değiştirir. Commit geçmişini temiz tutar:

# feature dalını main üzerine rebase et
git switch feature/login
git rebase main

# Etkileşimli rebase: commitleri düzenle, birleştir, sırala
git rebase -i HEAD~3

Altın kural: Paylaşılan (push edilmiş) dallarda rebase yapmayın. Rebase, commit hash'lerini değiştirir ve diğer geliştiricilerin çalışmasını bozar.

Stash

Yarım kalan çalışmayı geçici olarak saklar:

git stash                     # Değişiklikleri sakla
git stash save "açıklama"     # Açıklama ile sakla
git stash list                # Saklanan değişiklikleri listele
git stash pop                 # Son saklananı geri yükle ve sil
git stash apply               # Son saklananı geri yükle (silme)
git stash drop stash@{0}      # Belirli bir stash'i sil

Cherry-Pick

Başka bir daldan belirli bir commit'i almanızı sağlar:

# Belirli bir commit'i mevcut dala uygula
git cherry-pick abc1234

# Birden fazla commit
git cherry-pick abc1234 def5678

# Commit oluşturmadan değişiklikleri al
git cherry-pick --no-commit abc1234

Reset

Commit geçmişini geri alma yöntemlerinden biridir:

# Soft: commit geri al, değişiklikler staging'de kalır
git reset --soft HEAD~1

# Mixed (varsayılan): commit geri al, değişiklikler working directory'de
git reset HEAD~1

# Hard: commit ve değişikliklerin tamamını sil (DİKKAT!)
git reset --hard HEAD~1

Uyarı: --hard geri alınamaz bir işlemdir. Push edilmiş commit'lerde reset yerine git revert kullanın.

Conflict (Çakışma) Çözümü

İki dal aynı satırı değiştirdiğinde çakışma oluşur. Git çakışmayı şu şekilde işaretler:

<<<<<<< HEAD
const tema = 'koyu';
=======
const tema = 'açık';
>>>>>>> feature/tema

Çözüm adımları:

Faydalı Konfigürasyon

# Kullanıcı bilgileri
git config --global user.name "Adınız"
git config --global user.email "[email protected]"

# Varsayılan dal adı
git config --global init.defaultBranch main

# Faydalı alias'lar
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 --all"

Git komutlarınızı hızlıca oluşturmak mı istiyorsunuz? SiteScripti'nin Git Komut Oluşturucu aracıyla yaygın Git işlemlerini kolayca yapabilir ve doğru komut söz dizimini öğrenebilirsiniz.

Bu konuyla ilgili araçlarımızı da deneyin: JSON Formatter, Regex Test Aracı, ENV Generator

← Tüm Yazılar