Bu bölümde, Git’in ileri seviye özelliklerinden olan branching (dallandırma), stash kullanımı ve değişiklikleri geri alma yöntemleri olan git revert
ve git reset
komutlarını öğreneceksiniz. Bu komutlar, daha karmaşık projeleri yönetirken iş akışınızı kolaylaştıracaktır.
Git Branching (Dallandırma)

Branch Nedir?
Branch (dal), ana projeyi bozmadan yeni özellikler geliştirmek veya hataları düzeltmek için oluşturulan bir kopyadır.
Neden Branch Kullanılır?
- Ana kod tabanını bozmazsınız.
- Aynı anda birden fazla özellik üzerinde çalışabilirsiniz.
- Takım çalışmasında kodları izole ederek birleştirme kolaylığı sağlar.
Yeni Bir Branch Oluşturma
Yeni bir branch oluşturmak için:
git checkout -b feature/yeni-ozellik
feature/yeni-ozellik
: Oluşturulan branch’in adı.
Branch’ler Arasında Geçiş Yapma
Farklı bir branch’e geçmek için:
git checkout branch_adi
Örnek:
git checkout master
Mevcut Branch’leri Listeleme
Tüm branch’leri görmek için:
git branch
Çıktı Örneği:
master
* feature/yeni-ozellik
- Yıldız
(*)
geçerli olan branch’i gösterir.
Branch’leri Birleştirme (Merge)

Branch’te yaptığınız değişiklikleri ana branch’e (örneğin master) birleştirmek için:
Ana branch’e geçin:
git checkout master
Branch’i birleştirin:
git merge feature/yeni-ozellik
Birleştirme tamamlandıktan sonra eski branch’i silebilirsiniz:
git branch -d feature/yeni-ozellik
Git Stash Kullanımı (Değişiklikleri Geçici Olarak Saklama)
Stash Nedir?
Stash, çalışma alanındaki değişiklikleri geçici olarak kaydedip saklamanızı sağlar. Özellikle branch değiştirirken henüz tamamlanmamış çalışmaları kaybetmemek için kullanılır.

Değişiklikleri Stash’e Kaydetmek
git stash
Örnek:
Saved working directory and index state WIP on master: 1a2b3c4 Commit mesajı
Stash’leri Listeleme
Tüm stash’leri görüntülemek için:
git stash list
Çıktı Örneği:
stash@{0}: WIP on master: 1a2b3c4 Commit mesajı
stash@{1}: WIP on feature: 3d4e5f6 Diğer değişiklikler
Stash’i Geri Yükleme
Saklanan değişiklikleri geri yüklemek için:
git stash apply
Stash’i kaldırarak yüklemek için:
git stash pop
Belirli Bir Stash’i Silme
Bir stash’i silmek için:
git stash drop stash@{0}
Git Revert ve Reset Farkı (Değişiklikleri Geri Alma)
Git’te değişiklikleri geri almak için iki önemli komut vardır: git revert
ve git reset
. İkisi arasındaki fark şudur:
Komut | Açıklama |
git revert | Yeni bir commit oluşturarak belirtilen değişiklikleri geri alır. |
git reset | Belirli bir commit’e geri döner ve değişiklikleri kaldırır veya düzenler. |
1. Git Revert
git revert
, geçmişteki bir commit’i geri almak için kullanılır ve değişiklikleri iptal eden yeni bir commit oluşturur.
Kullanımı:
git revert commit_id
Örnek:
git revert 1a2b3c4
Bu işlem, orijinal commit’i değiştirmez ve güvenlidir çünkü projenin geçmişini bozmadan ilerler.
2. Git Reset
git reset
, projeyi belirli bir commit’e geri alır. Reset kullanırken dikkatli olunmalıdır çünkü geri alınan değişiklikler kalıcı olarak silinebilir.
Kullanımı:
Soft Reset: Değişiklikler kaybolmaz, sadece commit geri alınır:
git reset --soft commit_id
Mixed Reset: Commit geri alınır ve değişiklikler staging alanından çıkarılır:
git reset --mixed commit_id
Hard Reset: Tüm değişiklikler silinir (geri dönüş yoktur!):
git reset --hard commit_id
Örnek:
git reset --hard 1a2b3c4
Özet ve Örnek Senaryo
Bir projede yeni bir özellik üzerinde çalışırken bir hata yaptığınızı düşünelim:
Yeni bir branch oluşturun:
git checkout -b feature/yeni-ozellik
Çalışmayı bitirmeden branch değiştirmek için stash kullanın:
git stash
git checkout master
Eski bir commit’i geri almak için revert kullanın:
git revert 1a2b3c4
Stash’i geri yükleyin:
git stash pop
Sonuç
Bu bölümde Git’in ileri seviye konularını öğrendiniz:
- Branching ile projelerinizi organize ettiniz.
- Stash kullanarak tamamlanmamış değişiklikleri geçici olarak sakladınız.
- Revert ve Reset ile değişiklikleri nasıl geri alacağınızı öğrendiniz.
Bir sonraki bölümde, takımla çalışma ve iş birliği konularını inceleyeceğiz.