Branch Yönetimi ve Gelişmiş Git Komutları
eminbasbayan

İçindekiler
Bu yazıda neler var?
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)
TEXT?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-ozellikfeature/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 masterMevcut 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)
TEXT?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
```
2. Branch’i birleştirin:
```bash
git merge feature/yeni-ozellik
```
3. Birleştirme tamamlandıktan sonra eski branch’i silebilirsiniz:
```bash
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**
```bash
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 applyStash’i kaldırarak yüklemek için:
git stash popBelirli 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 1a2b3c4Bu 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:
```bash
git reset --mixed commit_id
```
- **Hard Reset:** Tüm değişiklikler silinir (geri dönüş yoktur!):
```bash
git reset --hard commit_id
```
**Örnek:**
```bash
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
```
2. **Çalışmayı bitirmeden branch değiştirmek için stash kullanın:**
```bash
git stash
git checkout master
```
3. **Eski bir commit’i geri almak için revert kullanın:**
```bash
git revert 1a2b3c4
```
4. **Stash’i geri yükleyin:**
```bash
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.




