Git, GitHub ve BitBucket
Bu yazımda son dönemde, özellikle açık kaynak projelerinde oldukça popüler olan kaynak yönetim sistemlerinden Git ve en popüler sunucularından GitHub ve BitBucket hakkında bahsetmek istiyorum.
Nasıl günlük hayatımızda giydiğimiz kıyafetlerin dönem dönem değişen bir modası varsa aynı şekilde yazılım dünyasının da kendine has moda davranışları ve trendleri var. Nasıl proje yönetim metodolojilerinde bir zamanda şelale popülerdi ama süresi geçti ve yerini çevik yöntemlere bıraktı; versiyon ve kaynak kontrol yöntemleri olarak CVS, SubVersion ve proje hosting hizmeti olarak SourceForge da bir zamanlar çok popülerdi. Ancak burada itiraf etmeliyim ki SourceForge’den oldum olası nefret etmişimdir. Nedeni ise; daha lise yıllarımda PIC mikrodenetleyicileri için Assembly desteği olan sade ve hafif bir IDE geliştirmiş ve bunun açık kaynak kodlu olması gerektiğine inanarak defalarca SourceForge’da proje başlatmaya çalışmış ve her seferinde projem reddedilmişti. Neyse ki GitHub’da oluşturduğunuz public projeniz anında yayında. Her ne kadar henüz etkin olarak kullanmıyor olsam da GitHub’ın bilgisayar dünyasına inanılması katkısı olduğu tartışılmaz.
Git, Linus Torvalds’ın kendisi tarafından geliştirilmiş bir dağıtık çalışan kaynak kod yönetim ve sürüm kontrol sistemidir. Önceleri, Linux kernel geliştirmeleri için BitKeeper adlı kaynak yönetim sistemini kullanan kernel geliştiricileri, BitKeeper ile araları bozulunca bizim Linus, öğrendiklerini ve BitKeeper kullanırken aldığı dersleri Git’i geliştirmek için kullanır ve ortaya açık kaynaklı dağınık kaynak yönetim ve sürüm kontrol sistemi olarak Git’i çıkartır.
Git küçük ve kullanımı basit bir uygulamadır. Hemen hemen herşey lokal olarak bilgisayarınızda tutulur. Merkezi bir sistemde depoların tutulması gerekir bunun için hosting benzeri sistemler devreye giriyor. Bu noktada en popüler Git sunucularından GitHub ve BitBucket devreye giriyor. Her sunucu da içlerinde kendilerine göre avantaj ve dezavantajlar barındırıyorlar. Şu an için GitHub en popüler olanı, bunun sebebi ise tıpkı bir sosyal ağ gibi tasarlanmış olması. Dez avantajı ise size özel depoları ücretli sunması denebilir. Bitbucket ise özel depoları ücretsiz sunarak bağımsız geliştiricilere avantaj sağlıyor ama sosyal ağ özellikleri GitHub kadar gelişmiş olmadığı için açık kaynak projelerde yeterince popüler değil. Özetlersek açık kaynak için GitHub, özel depolar için BitBucket tercih sebebi olabilir.
Takım olarak eğer Git gibi bir dağınık versiyon kontrol sistemi kullanmıyorsanız kesinlikle hemen kullanmaya başlamanızı öneriyorum. Takım içinde diyaloğun artması, değişiklikleri takibi, bugların kontrolü, iletişimin artması gibi sayısız faydası olduğunu görünce şaşıracaksınız. Kimliğini henüz tespit edemediğimiz bir iş arkadaşımızın scrum tahtasına yazdığı gibi “Seviyorsan GitHub bence”