İnternet kullanımının çok çeşitli hâle gelmesiyle birlikte kullanıcıların dosyalarını depolama yöntemleri de değişti. Bundan bir süre önce insanlar projelerini ve çalışmalarını hem depolamak hem de yönetmek için büyük çoğunlukla fiziksel diskler tercih ediyordu. Fakat bugün Git gibi öncü yazılımların sunduğu GitLab ve GitHub uygulamaları, fiziksel disklere olan ihtiyacı ortadan kaldırıyor.

Çevrim içi ortamda istediğiniz her an erişim imkânına sahip olduğunuz bu tarz yazılımlar kullanıcı deneyimini çok daha iyi hâle getiriyor. GitLab ve GitHub da kullanıcı deneyimini iyileştirmeyi amaçlayan yazılımlar olarak dikkat çekiyor. Şunu belirtmek gerekir ki Git bilişimcilerin geliştirdiği projelerde hem farklı katılımları hem de eş zamanlı çalışmayı mümkün kılıyor.
Git Nedir?
Linux’un kurucusu Linus Torvalds tarafından üretilen Git, yazılım geliştirme süreçlerinde tercih edilen, hız odaklı ve dağıtıma yönelik çalışan bir kontrol ve kaynak kod yönetim sistemidir. İlk sürümü 2005’te yayınlanan bu sistem, temelde yazdığınız projeleri sabit bir diskte ya da bilgisayarda değil de internet ortamında tutmanıza ve kontrol etmenize yardımcı olur.

GNU Genel Kamu Lisansı’nın ikinci sürümüyle lisanslanmış özgür bir yazılım olan Git, tam yetkili bir depo anlamına gelir. Fakat “Git nedir?” sorusunun cevabını detaylı şekilde vermek gerekiyor. Git; proje (çalışma dizini), internet erişimi ya da merkezi depo olmadan tüm tarihçeyi tutmayı başaran ve sürüm kontrol sisteminin tamamını barındıran bir platformdur.
İstediğiniz zaman projenizin herhangi bir versiyonuna ulaşmanızı sağlayan bu yazılım, birden fazla kişinin eş zamanlı olarak aynı proje üzerinde çalışmasına da izin veriyor. Böylelikle kod alışverişi yapmak oldukça kolay hâle geliyor. Çevrim dışı olarak da kullanılabilen Git, hızlı performansı ve az yer kaplaması nedeniyle de kullanıcılar tarafından sıkça tercih ediliyor.
Üzerinde çalıştığınız projeler geliştikçe birçok açıdan bu çalışmaları takip etmek zorlaşıyor. Projede belirli bir noktaya dönüp hata tespiti yapmak ya da çalışmanızı güvende tutmak istiyorsanız yedekleme yapmanız gerekiyor. Özellikle projelerin ilerleyen aşamalarında bu yedeklemelerle hem kapladığı alan hem de sorunların boyutu açısından baş etmeniz oldukça zorlaştığı için Git kullanmanız öneriliyor.

GitHub Nedir?
GitHub, sürüm kontrol sistemi seçenekleri arasında Git kullanmayı tercih eden kullanıcıların yazılım projeleri için bir depolama servisi olarak ifade edilebilir. GitHub, özel depolar için ücretli kullanım seçenekleri sunarken açık kaynak kodlu projeler için ücretsiz olmasıyla ön plana çıkıyor. GitHub açık kaynak kodlu projelerde en çok tercih edilen depolama servislerinden biri.
Yazılımcıların sosyal medyası olarak da isimlendirilen bu depolama servisiyle ilgili en sık sorulan sorular arasında “GitHub nedir?” sorusu bulunuyor. Versiyon kontrol sistemlerinde uzak depo rolünü üstlenen GitHub, dünyanın farklı yerlerinden proje oluşturmak isteyen yazılımcıların çok rahat şekilde dahil olduğu ve bu sayede takım çalışmasına izin verilen bir yapıyı temsil ediyor.

GitHub kullanırken dikkat edilmesi gereken ilk husus ana klasör isimlendirmesi olarak dikkat çekiyor. Kullanıcı hesabınızı oluşturduktan sonra sizin tarafınızdan barındırılan proje branch, fork, repository ve respository gibi isimlerle anılıyor. Bu durum bir nevi farklı kullanım şekilleri olan ana klasör işlevlerini simgeliyor. Bu durumda da branch, repository’lerin alt klasörü olarak değerlendirilebilir.
Örneğin fork etmek başkasının yaptığı bir repository’i kopyalamak ve aynı zamanda bilgisayarda clone etmeye hazır hâle getirmek anlamına sahip. GitHub üzerinden yapılan projelerde yazılımcılar kendilerini test edebilir, diğer yazılımcıların ürettiği kodları kendi kodlarıyla karşılaştırabilir ve yaptığı çalışmanın eksik yönlerine odaklanabilir. Ayrıca bu uzak depolama servisi birçok yazılım dili tarafından destekleniyor.
GitLab Nedir?
“GitLab nedir?” sorusunun yanıtı GitLab ile GitHub arasındaki farkın daha iyi anlaşılması açısından oldukça önemli. GitLab web tabanlı bir Git depo uygulaması olarak tanımlanabilir. Bu depo servisi sürekli entegrasyon (CI), sürekli teslimat (CD), hata kayıt, kod gözden geçime ve wiki desteğiyle çalışıyor. Başlangıçta GitLab’in büyük bir çoğunluğu Ruby ile yazılmıştır.

Daha sonra performans gerektiren bazı bölümler Go kullanılarak yeniden kodlanmıştır. GitLab’in GitHub’a kıyasla en büyük farkı sınırsız kod deposu, sınırsız disk alanı ve kod devamlılığı gibi seçenekleri bünyesinde barındırması. GitLab, Git teknolojisini kullanarak kodlarınızı ücretsiz şekilde gizli veya açık uzak sunucularda tutmanıza imkân tanıyor. GitLab kısaca GitHub’ın açık kaynak versiyonu.
Ücretsiz olarak özel kod barındırmanızı sağlayan GitLab çok iyi bir talep yönetim sistemine sahip. Bu nedenle ek bir yönetim sistemine (Redmine, JIRA vs.) ihtiyaç duymadan tüm işlerinizi halledebilirsiniz. Ayrıca söz konusu depolama servisinin yardımıyla sınırsız sayıda özel ve açık kaynak kodlu repository oluşturabilir, bunları ücretsiz bir şekilde GitLab’in sunucularında saklayabilirsiniz.
GitLab, GitHub’ın kullanıcılara vadettiği tüm işlevleri bünyesinde barındırmasıyla dikkat çekiyor. Tüm bu işlevlere ek olarak özel kod kullanımına da açık olması GitLab’in yazılımcılar tarafından sıklıkla tercih edilmesini sağlıyor. Şunu da belirtmek gerekir ki bu depo servisinin ücretsiz sürümünde kendi sunucularınıza kurarak sadece kurum içi kullanıcıların erişebileceği bir servis hizmeti bulunuyor.

GitLab Neden Kullanılır?
GitLab takım hâlinde yazılım projesi gerçekleştirmek amacıyla bilişim uzmanları tarafından tercih ediliyor. Bu depo servisini resmi web sitesi üzerinden üye olarak bilgisayarınıza herhangi bir kurulum yapmanız gerekmeden ücretsiz olarak kullanmaya başlayabilirsiniz. Eğer GitLab’i kendi sunucunuza kurmak istiyorsanız yeni topluluk özelliklerinin yardımıyla yine ücret ödemeden uzak sunucu depo servisini temin edebiliyorsunuz.

Birçok farklı kullanıcının katılımıyla hazırlanacak projelerde sınırsız disk alanı ve sınırsız kod deposu seçeneklerine sahip olan GitLab kullanımı birçok açıdan kodlama deneyimini bir üst seviyeye taşıyor. Güvenlik önlemleri, kod gözden geçirme, sürekli teslimat ve hataların düzeltilmesi açısından en iyi verimliliği sunan servis deposu topluluk içerisinde yazılımcıların kendilerini geliştirmelerini de kolaylaştırıyor.
Git Komutları Nelerdir?
- git init: Bu komut komutun yazıldığı dizini bir Git Repository’si hâline getiriyor ve .git uzantılı bir dizin oluşturuyor. Buradaki değişiklikleri kaydedip istediğiniz zaman uzaktaki açık kaynak kodlu veya gizli sunucuya gönderme şansına sahipsiniz.
- git status: Yönetim sistemi içerisinde bulunduğunuz dizindeki mevcut durumu gösteren komutu ifade ediyor. Sizin yaptığınız son kayıttan bu yana başka bir kullanıcı tarafından kod üzerinde herhangi bir değişiklik yapılıp yapılmadığını bu komut sayesinde görüntüleyebilirsiniz.

- git checkout -b kullaniciadi: Bu komut kullaniciadi isminde bir branş oluşturup yönetim sisteminde bu branşa geçmenizi sağlıyor. Buradan başka bir branşa geçene ya da başka branşlarla birleşene kadar yaptığınız tüm değişiklikler bu branş üzerinde saklanıyor.
- git add: Git yönetim sisteminin takip etmesi için dosya seçmenize yardımcı oluyor. Bu komutu git add . veya git add * yazdığınızda üzerinde değişiklik yapılan tüm dosyaların Git’in takip listesine girmesini sağlıyorsunuz.
- git commit: Depo servisinde git add komutunu kullanarak takip listesine aldığınız tüm dosyaları git commit komutunu yazdığınız anda o anki hâlleriyle kayıt altına alıyorsunuz. Bu komutun tam yazılışı commit -m “mesajım” şeklinde.

- git push: Sistemde commit edilen tüm dosyaları uzaktaki sunucuya gönderen bu komut Git’in en çok kullanılan komutlarından biri. Tüm yönetim sistemindeki kod alışverişini gerçekleştiren temel komutlar arasında yer alan git push, veri akışının devamlılığını kolaylaştırıyor.