Sobes.tech
Middle

Git ile çalışma desenleri nelerdiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

  • Git-flow: Netlikli bir sürüm döngüsü olan projelerde kullanılır. Fonksiyonel sabitleme, hata düzeltmeleri ve sürüm hazırlıkları yönetmek için uygundur. feature, develop, release, hotfix, master dallarını oluşturur.

  • GitHub flow: Sık ve küçük sürümlere öncelik verilen projelerde kullanılır. Basit bir model, ana dal (main veya master) ve her özellik veya düzeltme için dallar üzerine kurulu olup, incelemeden sonra doğrudan ana dala birleştirilir.

  • Trunk tabanlı geliştirme: Yüksek entegrasyon ve sürekli dağıtım gerektiren projelerde uygulanır. Geliştiriciler doğrudan ana dal (trunk) veya kısa ömürlü dallarda değişiklik yapar, hızla geri birleştirilir. Anahtar unsur — Feature Toggles.

Bu temel desenlerin yanı sıra, kullanıldı:

  • Rebase vs Merge: Duruma ve ekip anlaşmalarına bağlı olarak, git rebase yerel dallarda temiz bir geçmiş tutmak için kullanılırken, git merge --no-ff ana dalda açık bir birleşme geçmişi sağlar.

    # Rebase örneği
    git checkout feature/yeni-özellik
    git pull --rebase origin main 
    # Çatışmaları çözme
    git push -f origin feature/yeni-özellik 
    # Veya ana dala merge isteği
    
    # Merge --no-ff örneği
    git checkout main
    git merge --no-ff feature/yeni-özellik -m "Yeni özellik ana dala birleştirildi"
    git push origin main
    
  • Squash and Merge: Özellikle özellik dallarını ana dala birleştirirken kullanılır. Birden fazla commit tek bir temiz commit haline getirilir.

    # Git platformu üzerinden squash merge örneği (GitHub, GitLab)
    # Genellikle Pull Request onayında yapılır.
    
  • Cherry-picking: Belirli commitleri dallar arasında taşımak için kullanılır, örneğin, ana daldaki düzeltmeleri sürüm veya staging dalına geri almak.

    # Cherry-pick örneği
    git checkout release/v1.2
    git cherry-pick <commit_hash>