Git Platformları: GitHub ve GitLab

Versiyon kontrol sistemleri (VCS) ve ardından git tarihçesi ve kurulumu ile devam eden yazı dizisine git kullanmamıza vesile olacak, bu süreci platform ölçeğinde özellikle katmış 2 önemli oyuncu ile devam ediyorum.

Sonraki Yazı

Git SCM Nedir? Nasıl Kurulur?
· cli

Önceki Yazı

Versiyon Kontrol Sistemi (VCS) Nedir?
· afaik
AA
Git Versiyon Kontrol Uygulama ve Platformları
Best Version Control Hosting Software, g2.com

Git Platformları

Versiyon kontrol sistemleri (VCS) yazısında bazı önemli platformlardan / uygulamalardan bahsetmiştim. Git üzerine inşa edilen ve farklı kullanım ölçeklerine odaklanan pek çok alternatif olmasına karşın ben özellikle GitLab1 2 ve GitHub3 4 üzerinde durmak istiyorum. Bitbucket5 da esasında bu iki platformun hemen ardından gelmekte ve git veya mercurial sürüm kontrol sistemlerini kullanma imkanı sunmakta. Ancak, Bitbucket’ı şimdilik çok fazla kişisel deneyimim olmadığı için gözardı edeceğim. İlerileyen zaman içerisinde, edindiğim tecrübeler doğrultusunda elbette yazıya alternatifleri de dahil etmek isterim.

Google Trends: GitHub, GitLab, BitBucket
Google Trends: Git, GitHub, GitLab, BirBucket

GitHub

Git, projelerin ve elbette geliştiricilerin önemli bir ihtiyacı olarak 2005 yılında (ilk release) kullanılabilir hale gelse de, özellikle farkındalık yarattığı sürecin GitHub ile başladığını söyleyebiliriz.

GitHub, Git versiyon kontrol sistemini kullanan ve öne çıkan platformlardan biri. Nisan 2019 verilerine göre platformu kullanan 36 milyondan fazla kullanıcı mevcut. Platforma ilk commit 2007 yılında gerçekleştirilmiş ve o günden bu güne GitHub 100 milyondan fazla repository’e ev sahipliği yapmakta. 3.

2007 yılında ilk adımları atılan, 2008 yılında resmi olarak Chris Wanstrath, PJ Hyett, Tom Preston-Werner ve Scott Chacon tarafından hayata geçirilen GitHub kendini “geliştirici şirketi” (developer company) olarak konumlandırmakta ve buna uygun olarak sıklıkla topluluk ilişkilerine yönelik attığı adımlarla kendisinden söz ettirmekte. İşbirlikçi bir topluluğu teşvik eden anlayışın neticesinde de en bilinen versiyon kontrol sistemlerinden biri haline gelmiş durumda. The State of the Octoverse6 sayfasından da ayrıca bir önceki yıla dair değerlendirmeleri görmek mümkün. Gelelim diğer detaylara.

2011 yılında kurumsal çözümleri de bünyesine dahil eden şirket, 2012 yılında aldığı 100 milyon dolarlık yatırım ile önemli bir döneme girmiş oldu. 2013 Mart’ında 3. milyon kullanıcıya ve 10 milyon repository’e ulaşan platform yine bu dönemde ilişkili olduğu topluluğu genişletmek anlamında teşvik edici bazı çalışmalara başladı. Bu çalışmaların meyvesi olarak 2014 yılında GitHub Developer Program duyuruldu ve hemen ardından Electron framework ile geliştirilen Atom metin editörü7 kullanıma sunuldu4. GitHub Student Developer Pack ile öğrencilere çeşitli avantajlar sunan GitHub sonraki her yıl pek çok konferans ile kullanıcılarına doğrudan gelişmeleri ve yeni özellikleri aktarmaya başladı8.

Gelişen, büyüyen topluluğu ve geliştiriciler tarafından bir lovemark haline gelmesinin neticesinde ise en büyük gelişme yaşandı. Microsoft 2018 yılında GitHub’ı bünyesine kattı9. Pek çok geliştirici için olumsuzluk olarak nitelendirilen bu durum bazı geliştiricilerin farklı platformlara geçiş yapmasına sebep olsa da platformun büyüme çizgisinde bir sapma oluşturacak yoğunluğa ulaşmadı. 2018 ve öncesi dönemde özel repo’lar ücretli kullanım ile mümkün iken 2019 itibariyle ücretsiz olarak sunulması da bu sürece ve kullanıcıların tavrına olumlu bir katkı sağlamış olabilir. Bu konu tartışmaya açık. Ancak, şu bir gerçek ki GitHub bir geliştirici için olmazsa olmaz araçlardan / platformlardan biri haline gelmiş durumda. Bir dönem neredeyse herkesin Facebook hesabı var ise, şimdilerde de her geliştiricinin bir GitHub hesabı var.

GitHub Tarafından Sunulan Özellikler

Özellikle belirtmem gerekir ki, GitHub’ın en sevdiğim özelliklerinden biri pek çok farklı biçimde sunulan doküman yönetim anlayışı. Yukarıdaki anlatılar içerisinde pek çok içeriğe atıfta bulundum. Öğrenme sürecine dair ise Guides altında pek çok konu derlenmiş durumda. Diğer yandan git cheat sheet10 ile de git komutlarına dair temel bir bilgi edinilebilir. Gelelim asıl konuya. GitHub tarafından sunulan özellikler nelerdir?

Ücretsiz, pro, team ve enterprise üyelik seçenekleri bulunan platform ayrıca nonprofit ve academic desteğe de sahip.

Code review, pull requests gibi standart özelliklerin yanı sıra, public repo’lar için draft pull request, korumalı dallar (protected branches), kod sahipliği, issue takibi, bildirimler, proje board’ları, dönüm noktaları tanımlama, sayfalar (kullanici-adi.github.io gibi) ve wiki gibi pek çok özellik de platformda kullanıcılara sunulmakta. Diğer özellikler için Pricing sayfasını inceleyebilirsiniz.

Unutmadan, GitHub README dosyaları için Markdown yazısında da bahsi geçen GFM'i11 kullanmakta.

GitLab

Dmitriy Zaporozhets ve Valery Sizov tarafından geliştirilen ve 2011 yılından bu yana kullanılabilen GitLab kendisini DevOps yaşam döngüsü aracı olarak nitelendirmekte. GitHub tarafından sunulan pek çok özelliğe CI/CD pipeline ve Authentication Level yönetimi başta olmak üzere daha pek çok özellik sağlamakta.

GitLab Tarafından Sunulan Özellikler

Ücretsiz, bronze, silver ve gold üyelik seçenekleri bulunan platformda benim için öne çıkan özellik GitLab Community Edition12 idi. Platformun kendi CI/CD pipeline çözümü de yine pek çok geliştiriciyi cezbeden bir diğer özellik. Bahsi geçenlere ek olarak, diğer özellikler ve GitHub karşılaştırmasını GitLab tarafından oluşturulmuş olan GitHub vs. GitLab13 ve All GitLab Features14 sayfalarından da güncel bir şekilde takip edebilirsiniz. Diğer yandan, harici bir karşılaştırma olarak Compare GitHub vs GitLab15 sayfasına göz atabilirsiniz.

Peki, nereden başlamak lazım? Öncelik olarak, GitLab Installation ile yükleme işlemini gerçekleştirebilirsiniz. Ardından, Get started with GitLab sayfasına göz atabilir, GitLab Training Tracks16 ile çeşitli başlıklar altında pek çok detaya ulaşabilirsiniz.

Son olarak, GitHub ve GitLab örnek uygulamalar ve kod paylaşımı için sıklıkla kullandığım iki platform. Kişisel olarak GitLab kullanımım öne çıksa da, ilerleyen zaman içerisindeki paylaşımlarda da her iki platform için pratik yapma imkanı söz konusu olacak.

İleri Okumalar

  1. Announcing $20 million in Series C round funding led by GV to complete DevOps
  2. Migrating projects to a GitLab instance