Ekiple çalışırken herkesin aynı branch üzerinde değişiklik yapması kaosa yol açar. git branch ve merge kullanımı bu sorunu çözer: her özellik ya da düzeltme kendi dalında gelişir, ana dal stabil kalır. **Temel kavramlar** - **Branch (dal):** Kod tabanının bağımsız bir kopyası. Orada yapılan değişiklikler diğer dalları etkilemez. - **Merge:** Bir dalın değişikliklerini başka bir dala birleştirme işlemi. - **main/master:** Ana dal, çalışır kod buradadır. **Adım 1, Yeni branch oluşturun** ``` git branch ozellik/kullanici-girisi git checkout ozellik/kullanici-girisi ``` Ya da tek komutla: ``` git checkout -b ozellik/kullanici-girisi ``` Branch adlarında boşluk kullanmayın, bölücü olarak `/` ya da `-` tercih edin. **Adım 2, Değişikliklerinizi yapın ve commit edin** Normal şekilde dosyaları düzenleyin, `git add` ve `git commit` kullanın. Bu commitler yalnızca bulunduğunuz dalda kalır. **Adım 3, Branch'i uzak sunucuya gönderin** ``` git push -u origin ozellik/kullanici-girisi ``` Ekip arkadaşlarınız bu dalı görebilir ve üzerinde çalışabilir. **Adım 4, Ana dala dönüp merge edin** Özellik hazır olduğunda: ``` git checkout main git merge ozellik/kullanici-girisi ``` git branch ve merge kullanımı sırasında çakışma (conflict) çıkabilir, bir sonraki adım bunu ele alır. **Adım 5, Çakışmaları çözün** Merge sırasında aynı satırı iki kişi değiştirmişse Git çakışma işaretçileri ekler: ``` <<<<<<< HEAD main'deki kod ======= daldan gelen kod >>>>>>> ozellik/kullanici-girisi ``` Doğru kodu seçip işaretçileri silin, ardından `git add` ve `git commit` yapın. **Adım 6, Dalı silin** Merge tamamlandıktan sonra dalı temizleyin: ``` git branch -d ozellik/kullanici-girisi git push origin --delete ozellik/kullanici-girisi ``` **Sık kullanılan dal stratejileri** - **Feature branch:** Her yeni özellik için ayrı dal, tamamlanınca main'e merge. - **Hotfix branch:** Canlıdaki acil hata düzeltmeleri için doğrudan main'den dal açılır. **Yaygın hatalar** - Doğrudan main'de çalışmak, küçük projede bile ayrı dal alışkanlığı edinin - Merge etmeden dalı silmek, değişiklikler kaybolur - Çok geç merge etmek, dalı uzun süre açık tutunca çakışma sayısı artar