Git Nedir? Temel Prensipleri – Bölüm 1
0

Bu yazı serimizde, son yıllarda sık sık adını duyduğumuz ve bir çok büyük projenin doğması ile popülerliği her geçen gün artan, 28 milyondan fazla developer tarafından geliştirme yapılan ve yakın bir zamanda Microsoft bünyesine katılan Github’ın da temellerini oluşturan git sisteminden bahsedeceğiz. Git temel anlamda sürüm kontrolü yapabilmek adına yazılmış bir sistemdir. Özellikle Linux çekirdeğinin geliştirme aşamasında, topluluk tarafından verilen geri dönüşler doğrultusunda Linus Torvalds sık sık yamalama işlemi yapıyor ve bu durum her geçen gün daha karmaşık hale gelmeye başlıyordu. O zamanlar proje kapsamında dağınık kod kontrol sistemi şeklinde dizayn edilen Bitkeeper uygulaması kullanılmaya başlanmış ancak akabinden Bitkeeper’ın da ücretli bir hale dönüşmesi üzerine Linus Torvalds tarafından git uygulaması yazılmaya başlanmıştır. Alternatiflerine göre çok daha hızlı bir yapıya sahip olması amaçlanan git, geçmişe dönük olarak yapılan değişikliklerin görebileceği ve birden fazla katılımcının dahil olabileceği amacıyla başlanan bir proje olup şuan yazılım dünyasının kalbi haline gelmeyi başarmıştır.

Git hakkında Linus’un Google Talks’daki sunumuna buradan ulaşılabilir.

Git, başta belirttiğim gibi dağınık bir sürüm kontrol sistemi olup internet erişimi olmadan da lokalde projeye ya da dosyaya ait tüm değişiklikleri ve tarihçeyi tutmayı amaçlayan bir yapıya sahiptir. Bir dizine bu yapı iki şekilde entegre edilebilir. Bunlar init ve clone komutlarıdır. Bu komutlar yardımıyla git repository yaratırken, git tarafından takip edilip bu sayede tarihçesinin tutulması amaçlanan dosyalar tracked şeklinde ifade edilir. Bir dosya add komutu ile takip edilmeye başlanabilirken rm komutu ile takipten çıkarılabilir. Kararlı sürümün bulunduğu yapı master şeklinde isimlendirilirken, geçici ya da geliştirme aşamasındaki yapı ya da kümeler branch olarak adlandırılır. Komutların detaylı ve uygulamalı olarak incelenmesi adımlarına serinin ilerleyen yazılarında değinileceğinden temel anlamda bu kadar açıklamak daha sağlıklı olacaktır.

Redhat (CentOS, Redhat, Fedora) ailesine mensup bir Linux işletim sistemi üzerinde git yüklemek için aşağıdaki adımı uygulamak yeterlidir.

yum install git ( Aynı şekilde Debian (Ubuntu, Kali, vb.) ailesine mensup işletim sistemlerinde bu komut apt-get install git şeklinde olacaktır. )

Resim-1

Git uygulaması hakkında yardım almak için man komutunun kullanılabileceği gibi git help çıktısı ile de yardım almak da mümkündür. Git help –a komutu aracılığıyla bu çıktı daha detaylı hale getirelebilir.

Resim-2

Şimdi de gitTest ismindeki dizinimizde bir Repository yaratma işlemi başlatalım. gitTest isminde bir dizin yaratarak içerisine bir adet dosya yaratalım ve ilk sürecimizi tamamlayalım.

Burada git init . komutumuz ile bu dizinin Repository’imiz olacağını belirtiyoruz. Init 1 unix tabanlı işletim sistemlerinde boot aşamasındaki ilk süreç olarak karşımıza çıktığından dolayı anlamlı bir giriş yapmaktayız.

Akabinde git add . komutumuz ile bu dizin içerisindeki değişikliklerin takip edilmesini istiyoruz.

Son olarak git commit –m “First Commit” komutunu kullanarak geleneksel bir yorum ekliyoruz. First commit ile projenin başlangıcını temsil ediyoruz. Özellikle projede yapılan değişikliklerin neden yapıldığına dair bilgilendirmeler genelde commit komutu ile belirtilerek dağınık ve kalabalık çalışma gruplarında geliştirmeyi kolaylaştırmaktadır. Bu sebeple özet bir şekilde değişikliği belirtmek daha sağlıklı bir geliştirme ortamı için gereklidir.


Resim-3

Bu aşamadan sonra Repository istenirse uzak bir hub’a push’lanabileceği gibi lokal olarak da tutubilmektedir. Günümüz de bir çok projenin geliştirme ve versiyonlanmasında sıkça kullanılan git, şüphesiz ki hem hızlı işlevi hem de ihtiyaçları karşılayan yetenekleri sayesinde popülerliğini artırarak korumaktadır.

Serinin ilerleyen yazılarında Git’in daha teknik kısımlarına girecek, bir proje geliştirme kapsamında git’i nasıl kullabileceğinden bahsedeceğiz. Özellikle git’in popülerliğinde önemli bir yere sahip olan Github ve Gitlab gibi ortamlar hakkında incelemeler yapacak farklı işletim sistemleri üzerindeki kullanım alanlarına değineceğiz.

Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

TAGs: git, github, gitlab, Versiyon Kontrol Sistemi, Sürüm Kontrolü, Version Control System, Repository, Linus, Linux,git nedir,git temel prensipleri,redhat,fedora

Bu İçeriğe Tepkin Ne Oldu?
  • 0
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 1
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

İstanbul Teknik Üniversitesinde lisans öğrenime devam etmekteyim. Yaklaşık 3 yıldır Istanbul Teknik Üniversitesi Bilgi İşlem Daire Başkanlığında System Administrator olarak çalışmaktayım. Bu süreçte Windows Server başta olmak üzere Linux tabanlı projelerde yer aldım. DHCP, SQL Server, WSUS, KMS, WAS, WDS ve DPM ürünlerinin yönetimini üstlenme fırsatım oldu. Son zamanlarda Powershell ile otomasyon işlemlerine dayalı projelerin yanı sıra sunucu güvenliği konularında scriptler geliştirmekteyim. DevOps süreçlerinde Powershell'in daha aktif kullanılmasına yönelik türkçe kaynaklar yayınlamak ve Windows Server ürünlerinde powershell'in yaratabileceği avantajlar konusunda geliştirmeler yapmayı hedefliyorum.

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir