Takip et

Git’te Main Dalından Yeni Dal Oluşturmak: Tam Bir Rehber

Git’te Main Dalından Yeni Dal Oluşturmak: Tam Bir Rehber

Git kullanırken sık karşılaştığımız bir durum, ana dalımız olan “main”den yeni bir özellik dalı oluşturma ihtiyacıdır. Bu işlem, kod tabanınızı düzenli tutmak, yeni özellikler üzerinde çalışırken main dalını etkilememek ve iş birliğini kolaylaştırmak için hayati önem taşır. Bu rehberde, Git’te main dalından yeni bir dal oluşturmayı, farklı senaryoları ve ileri düzey teknikleri adım adım öğreneceğiz.

Git ve Dal Kavramları: Başlangıç

Git, dağıtık bir sürüm kontrol sistemidir. Temel olarak, projenizin dosyalarının farklı sürümlerini takip etmenizi ve değişiklikleri yönetmenizi sağlar. Bunun için “dalları” (branches) kullanır. Main dalı genellikle projenizin ana, kararlı sürümünü temsil eder. Yeni özellikler, hata düzeltmeleri veya deneysel kodlar için ise main dalından yeni dallar oluştururuz. Bu, main dalının stabil kalmasını ve yeni geliştirmelerin ana koda etki etmeden yapılmasını sağlar. Bir nevi, projenizin farklı versiyonlarında aynı anda çalışmanıza olanak tanır. Her dal bağımsız olarak geliştirilebilir ve daha sonra main dala birleştirilebilir (merge).

Yeni başlayanlar için anlaşılması gereken en önemli kavram, dalların bağımsız olmasıdır. main dalında yaptığınız değişiklikler, yeni oluşturduğunuz bir dalı etkilemez ve tam tersi de geçerlidir. Bu, risksiz bir şekilde deney yapmanızı ve kodunuzu geliştirmenizi sağlar. Ayrıca, ekip çalışmasında farklı geliştiricilerin farklı dallarda çalışıp daha sonra değişikliklerini birleştirmelerine olanak tanır, böylece çatışmalar (conflicts) olasılığı minimum seviyede tutulur.

Main Dalından Yeni Bir Dal Nasıl Oluşturulur?

Main dalından yeni bir dal oluşturmak oldukça basittir. İlk adım olarak, Git deponuzda bulunmanız ve main dalının aktif (checkout edilmiş) olması gerekir. Daha sonra aşağıdaki komutu kullanabilirsiniz:


git checkout -b yeni-dal-adi

Bu komut, "-b" seçeneğiyle yeni bir dal oluşturur ve aynı anda bu yeni dala geçer. "yeni-dal-adi" kısmını projeniz için anlamlı bir isimle değiştirmeniz önemlidir (örneğin: "feature-login", "bugfix-database"). Anlamlı isimlendirme, projenizin organizasyonunu ve kodun izlenebilirliğini büyük ölçüde artırır. Daha uzun isimler kullanıyorsanız tire (-) kullanarak kelimeleri ayırmayı tercih edin.

Alternatif olarak, önce yeni bir dal oluşturabilir, sonra da bu dala geçebilirsiniz:


git branch yeni-dal-adi
git checkout yeni-dal-adi

Bu iki komut da aynı sonucu üretir, fakat ilk yöntem daha kısa ve kullanışlıdır.

Yeni Dalda Geliştirme ve Main Dala Birleştirme

Yeni dalınızı oluşturduktan sonra, üzerinde değişiklikler yapmaya başlayabilirsiniz. Dosyalarınızı düzenleyin, yeni kod ekleyin, test edin. Değişikliklerinizden sonra, "git add" ve "git commit" komutlarıyla değişiklikleri kaydetmeyi unutmayın.


git add .
git commit -m "Yeni özellik eklendi"

Tüm değişiklikleri yaptıktan ve test ettikten sonra, yeni dalınızı main dala birleştirebilirsiniz. Önce main dala geri dönmeniz gerekir:


git checkout main

Daha sonra, yeni dalınızı main dala birleştirmek için aşağıdaki komutu kullanın:


git merge yeni-dal-adi

Eğer yeni dalınızda main dalında olmayan değişiklikler varsa, Git bir birleştirme işlemi yapar ve genellikle otomatik olarak birleştirir. Ancak, çatışma (conflict) durumunda, Git size hangi dosyalarda çatışma olduğunu bildirir ve el ile çözmeniz gerekir. Çatışmaları çözmek için ilgili dosyaları düzenleyin, çatışma işaretlerini kaldırın ve kaydedin. Daha sonra "git add" ve "git commit" komutlarını kullanarak değişiklikleri kaydedin.

Vaka Analizi: Yeni Bir Ödeme Geçidi Entegrasyonu

Örneğin, bir e-ticaret sitesinde yeni bir ödeme geçidi entegre etmek istediğinizi düşünelim. Bu işlemi main dalında yapmak yerine, "feature-new-payment-gateway" adında yeni bir dal oluşturursunuz. Bu dalda, yeni ödeme geçidini entegre etmek için gereken tüm kod değişikliklerini yaparsınız. Testlerden sonra, bu dalı main dala birleştirip yeni ödeme geçidini canlı ortama alırsınız. Bu sayede, main dalının stabilitesi korunur ve olası sorunlar daha kolay tespit edilebilir ve düzeltilebilir.

İleri Düzey Teknikler: Remote Dallar ve Pull Requestler

Ekip çalışması yapıyorsanız, genellikle uzak (remote) bir depo kullanırsınız (örneğin, GitHub, GitLab, Bitbucket). Bu durumda, yerel dallarınızı uzak depoya göndermeniz ve diğer geliştiricilerin değişikliklerini almanız gerekir. Yeni dalınızı uzak depoya göndermek için aşağıdaki komutu kullanın:


git push origin yeni-dal-adi

Bu komut, "origin" adlı uzak depoya "yeni-dal-adi" adlı dalı gönderir. Daha sonra, diğer geliştiriciler bu dalı klonlayabilir veya çekip (pull) değişiklikleri inceleyebilir ve birleştirme isteği (pull request) gönderebilir. Pull requestler, kod incelemesi ve iş birliğini kolaylaştıran önemli bir Git özelliğidir. Pull request sayesinde, kod değişiklikleri incelenir, yorumlanır ve onaylandıktan sonra main dala birleştirilir.

Performans Karşılaştırması: Farklı Birleştirme Stratejileri

| Birleştirme Stratejisi | Performans | Avantajlar | Dezavantajlar |
|---|---|---|---|
| git merge | Orta | Basit ve hızlı (çatışma yoksa) | Çatışmaları çözmek zaman alabilir |
| git rebase | Yüksek (genellikle) | Daha temiz bir tarihçe oluşturur | Daha karmaşık, yanlış kullanımda hata riski |
| Özel çözümler (cherry-pick vb.) | Değişken | Belirli commitleri seçici bir şekilde birleştirmek için ideal | Daha karmaşık, uzmanlık gerektirir |

Güvenlik Uyarıları

Dikkat!

Main dalını doğrudan değiştirmekten kaçının. Her zaman yeni bir dal oluşturun ve değişiklikleri yaptıktan sonra main dala birleştirin. Bu, kod tabanınızın güvenliğini ve istikrarını korumanıza yardımcı olur.

Öğrenme Yol Haritası

[Yeni Başlayan]: git checkout -b yeni-dal komutunu anlamak ve basit bir dal oluşturup birleştirme işlemini gerçekleştirmek.

[Orta]: Uzak depolarla çalışmak, git push ve git pull komutlarını kullanmak, pull request göndermek ve basit çatışmaları çözmek.

[İleri Düzey]: git rebase gibi ileri düzey birleştirme stratejilerini anlamak ve uygulamak, karmaşık çatışmaları çözmek, branching stratejilerini optimize etmek.

Sonuç

Git'te main dalından yeni bir dal oluşturmak, kod geliştirme sürecinizde düzen ve verimliliği sağlamak için olmazsa olmaz bir işlemdir. Bu rehberde, yeni başlayanlardan ileri seviye kullanıcılara kadar herkesin anlayabileceği şekilde, temel kavramlardan ileri düzey tekniklere kadar geniş bir yelpazede bilgi vermeye çalıştık. Uygulama ile daha da iyi anlayacağınız bu konuda, daha fazla bilgi için https://fatihsoysal.com sitesini inceleyebilirsiniz.

Sıkça Sorulan Sorular

  • Main dalına doğrudan kod yazabilir miyim? Mümkün ama önerilmez. Her zaman yeni bir dal oluşturun.
  • Çatışmalar nasıl çözülür? Git size çatışmanın olduğu dosyaları gösterir. Dosyaları düzenleyin, çatışma işaretlerini kaldırın ve kaydedin.
  • Remote dal nedir? Uzak bir depoda bulunan bir daldır (örneğin, GitHub'da).
  • Pull request nedir? Kod değişikliklerinin incelenmesi ve onaylanması için kullanılan bir mekanizmadır.
  • Bir dalı nasıl silerim? git branch -d dal-adi komutunu kullanabilirsiniz.

Yazar: Fatih Soysal

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.