Git Nedir ve Neden Git Kullanmalıyız?

You must be registered for see images attach


Daha önce GIT'ten detaylı bir şekilde bahsetmiştim. GIT Denetim Sistemi'nin ne işe yaradığını anlatmaya başlamadan ilkin birazcık kültür mantarı moduna geçelim ve "git" kelimesinin anlamı ve bu sistemin kısa tarihsel gelişimi üstüne konulaşım. Peki bunu niçin yapıyoruz?

Şu sebepten dolayı; Yazılım dehası Bill Gates fazlaca kitap okuyan, okuduklarını iyi şekilde hatırlayan ve konuşmaları esnasında okumuş olduğu kitaplardan alıntılar icra eden bir şahsiyet. Bu kadar okuma yapmış olup da okuduklarını aklında detaylı şekilde iyi mi tuttuğu sorulduğunda Bill Gates;

Bir mevzuda okumaya başlamadan ilkin mevzu hakkında genel informasyon sahibi olmayı ve mevzunun tarihini incelemeyi öneriyor.

Bu içeriğimizde ikimiz de GIT Versiyon Denetim Sistemi Nedir? sorusuna yanıt ararken bu mevzu hakkında yalnız kuru informasyon edinmek yerine bir miktar kültürel kazanım sağlayacağız ki mevzuyu içselleştirelim ve mevzu hakkında bir derinlik kazanalım. GIT ile ilgili bu sayfada ve devamındaki sayfalarda öğrendiklerimizi kolay kolay unutmayalım.

"git" Kelimesinin Anlamı​

Cambridge Sözlüğe gore; aptal, hoş olmayan şahıs anlamına geliyor.

Bu isimlendirme Torvalds'a sorulduğunda kendisi esprili şekilde şu cevabı veriyor:

"Ben bir egoistim ve projelerime kendi ismimi veriyorum. Önceki Linux, şimdiki git." Torvalds, alternatif olarak kelimenin ruh halinize göre aşağıdaki anlamlara da gelebileceğinden bahsediyor;

  • Yaygın bir UNIX komutu tarafınca kullanılmayan, söyleniş edilebilir, rastgele üç harfli bir kombinasyon.
  • Sözlükteki argo anlamı ile; Aptal, Aşağılık ve Rahat.
  • "Küresel informasyon seyirci" (Global information Tracker).
  • "Kahrolası aptal kamyon dolusu pislik" (Goddamn Idiotic Truckload of sh*t)."
Not: Alıntı, argo ve küfürden arındırılmıştır. Orijinal cevabına ulaşabilirsiniz.)

Görüldüğü suretiyle aslen o kadar da kati bir anlamı yok. Özgür yazılım dünyası sizi burada da özgür bırakmış.

GIT'in Tarihsel Gelişimi​

Linux'un mimarı Linus Torvalds, fazlaca sayıda şahıs ile beraber Linux çekirdeğini geliştirirken projenin yönetimi için o dönem piyasada bulunan BitKeeper adındaki versiyon denetim sistemini tercih etmiş. Fakat BitKeeper'in telif haklarını elinde bulunduran şahıs ile yaşanmış olan yasal sorunlardan dolayı bu kullanımdan vazgeçilmiş.

O günlerde piyasada bulunan versiyon denetim sistemlerinin hiçbiri aslen Torvalds'ın beklentilerini karşılamıyormuş.

Bu sebeple gereksinimlerine çözüm için kolları sıvayan Torvalds, piyasadaki sistemleri inceleyerek kendi versiyon denetim sistemini yazmaya başlamış. İlk sürüm 2005 senesinde piyasaya sürülmüş.

Yayınlanmasından günümüze kadar geçen sürede ise GIT büyük bir pazar hacmine ulaştı.

GIT Versiyon Denetim Sistemi Nedir?​

GIT nedir? diye sorduğunuzda versiyon denetim sistemi yanıtını almışsınızdır. İyi de versiyon denetim sistemi nedir?

Projemi geliştirirken "proje", "projee", "projee_son", "projee_son_5" şeklinde klasörlesem olmaz mı? GIT öğrenmeden olmaz mı? - OLMAZ!

Son sorudan başlayayım. Eğer ustalaşmış işler yapacaksanız GIT öğrenmek zorundasınız. Klasör isminin sonuna fazladan harfler, rakamlar ilave ederek proje geliştirmek ilerleyen süreçlerde başa çıkılabilecek bir yöntem değildir.

Versiyon Denetim Sistemi Nedir? sorusuna gelirsek; Bir döküman (yazılım projesi, ofis belgesi vb.) üstünde yaptığınız degişiklikleri adım adım izleyen, istediğinizde kayıt eden ve isterseniz bunu web üstündeki bir bilgisayarda ya da mahalli bir cihazda (respository / repo / depo) saklamanızı ve yönetmenizi elde eden bir sistemdir.

Versiyon Denetim Sistemi yerine Kaynak Kod Yönetim Sistemi ifadesini de duymuş olabilirsiniz. İkisi de aynı şeyi ifade etmektedir.

GIT Bizlere Ne Sağlar?​

  • Birden fazla yerde (dağıtık olarak) dosyalarınızı ve versiyon denetim bilgilerinizi depolayabilirsiniz. Böylelikle aygıt bağımsız olarak dosyalarınıza erişebilirsiniz.
  • "commit" yaparak SnapShot (anlık görüntü) özelliği ile istediğiniz vakit proje ya da dosyaların o anki halini kayıt altına alabilirsiniz. Böylelikle ileride bir hata ile karşılaşırsanız herhangi bir zamandaki herhangi bir versiyona dönüş yapabilirsiniz.
  • SnapShot alındıktan sonrasında değişim meydana getirilen dosyaları görebilirsiniz.
  • Takımların aynı projede birlikte çalışmasına olanak verir. Kim neyi düzenledi? Ne ekledi? Ne çıkarttı? Son değişim ne vakit yapılmış oldu? şeklinde bilgilere erişebilirsiniz. Bu sayede topluluk ile proje geliştirme süreçlerini kolaylaştırabilirisiniz.
  • Projede verisyonlanmasını istemediğiniz dosyaları belirtebilirsiniz. (node_modules, .mp4, .log, .env şeklinde)

GIT'i Anladım Fakat GitHub, GitLab, BitBucket Nedir?​

En mütevazi şekilde GIT versiyon denetim sistemini kullanan depolama servisleri diyebiliriz.

GitHub​

Yazılımcılar için bir kod kütüphanesi ve bir çeşit toplumsal medya ortamıdır.

Yazılım geliştiriciler projelerini halka açık ya da hususi olarak saklayabilir. Ücretli ve parasız paket seçenekleri mevcuttur.

GitLab​

GitHub şeklinde bir GIT servisidir. Değişik olarak firmalara GitLab'ı kendi sunucularına kurma imkanı verildiği için genel anlamda kurumsal tarafta kullanılır. GitLab ile firmalar kendi içinde GIT hizmetlerinden faydalanabilir.

BitBucket​

Genel anlamda kişisel kullanıma yöneliktir. GitHub tarafındaki açık kaynak projeler ve toplumsal medya ortamı burada gelişmemiştir.

Yukarıda açıkladığımız servisler haricinde GitKraken, SourceTree şeklinde irili ufaklı değişik servisler de mevcuttur.

GIT sistemini kullanmaya başladığınızda karşınıza daha ilkin aşina bulunmadığınız bazı tanımlar çıkacaktır. Temel bazı terimleri özetlemek gerekirse açıklayarak içeriğimizi bitirelim.
 
Son düzenleme:
Üst