Özgür Adem Işıklı

Versiyon Kontrol Sisteminde (Git) Branch Nerelerde Kullanılır?

24 February 2014

Versiyon Kontrol Sistemleri (VCS) proje geliştirirken olmazsa olmazlarımızın başında geliyor artık. Bir noktadan sonra “Eskiden biz nasıl kod geliştiriyor muşuz?” demeden edemiyoruz. Uzunca bir süredir ben de her projemde ilk olarak versiyon kontrol sistemi (benim için Git) kuruyorum. Ancak özellikle tek başıma çalıştığım geliştirmelerde hiç branch oluşturma ihtiyacı duymuyordum.

Sorun

Örnek üzerinde gidelim. Bir web uygulaması geliştirdiniz. Testlerini yaptınız ve production ortamına uygulamanızı attınız. Örnek uygulamamızın iki temel bölümden oluştuğunu varsayalım;

Daha sonra siz A modülüne çok güzel bir özellik eklemek istediniz. Çalışmaya başladınız ve epey bir kodladıktan sonra production üzerinde çalışan uygulamanızın oturum yönetiminde çok kritik bir hata tespit ettiniz. Hemen bu hatayı düzeltmeniz gerekiyor. Eğer master haricinde bir branch oluşturmadıysanız yani doğrudan master üzerinde çalışıyorsanız hatayı düzeltip master’a gönderirseniz, henüz tamamlamadığınız A Modülü’ndeki değişiklikleri de production’a atmak zorunda kalırsınız.

Tanımlama

Buna benzer bir durum başıma geldikten sonra şunu fark ettim;

İşte bu durumda tam olarak şunu isteyeceksiniz;

“Ben A Modülü’nü geliştireyim ama aynı anda B Modülü’de geliştirilebilsin. A bittiğinde ben bunu sunucuya atayım lakin B’nin geliştirmesi tamamlanmadığı için o sunucuya gitmesin.”

Çözüm

Çözüm tek kelimeyle; branch!

Hiç bir zaman master kalıp üzerinde çalışmayın. En azından “development“, “bug” vb. gibi kalıplarınız olsun. Tüm geliştirmelerinizi bu kalıplar üzerinde tamamlayın. Eğer modüler bir yapınız varsa, geliştirme yaptığınız her modül için de bir branch oluşturabilirsiniz. İş vereninizin ya da müşterinizin ne zaman “Bu işi bırak, şuna başla” diyeceği belli olmaz.