Git bir sürüm yada versiyon kontrol sistemidir. Versiyon kontrol sistemi; bir kaynak kodda meydana gelen değişiklikleri takip edebilmemizi sağlar. Basitçe ifade edersek Git sistemi bu değişiklerin kaydını ve içeriğini kullanıcısı için takip eder ve kayıt altına alır.
Versiyon kontrol sistemleri birden fazla kişinin yer aldığı projelerde aynı dosyalar üzerinde güvenli olarak çalışma imkanı sağlamaktadır. Versiyon kontrol sistemleri sayesinde değişikliklerin yapıldığı dosyalar doğru bir şekilde birleştirilebilir.Üzerinde çalışılmakta olan projenin versiyonları da sistem sayesinde kayıt altına alınır.
Linus Torvalds ve Linux ekibi tarafından geliştirilmeye karar verilen Git sürüm versiyon kontrol sistemi 2005 yılından bugüne geliştirilmeye devam edilmektedir. Git sisteminin yazılım bakımını şu anda Junio Hamano üstlenmiştir.
GNU Genel Kamu Lisansı'nın ikinci sürümü ile lisanslanan Git sistemi "özgür yazılım" olan bir üründür. Bu ürünü kullanan şirketler veya projeler arasında Google, Facebook, Microsoft, Twitter, Linkedin, Netflix, Android, Gnome, Eclipse, Rails, PostgreSQL gibi bilinen isimler yer almaktadır.
Git ile Çalışmak
Git kullanıcıları komut satırı arayüzü ve görsel arayüz ile sistemi kullanabilirler. Git Windows, Mac OS X, GNU/Linux işletim sistemlerinde kullanılabilmektedir. Her işletim sistemi için çeşitli kurulum yöntemleri bulunmaktadır, bu yazıda kurulum bölümünden bahsetmeyeceğim.Git kurulumunu tamamladıktan sonra, kullanıcı adı ve email ayarlarınızı gerçekleştirmelisiniz. Bu ayarları gerçekleştirmek için aşağıda yer alan komutları kullanabilirsiniz. --global kelimesi Git'e global ayarlarımızı düzenlediğimizi belirtiyor. Ardından kullanıcı adı ve kullanıcı mail adreslerimizi sisteme kayıt ediyoruz.
git config --global user.name "kullaniciadiniz" git config --global user.email "kullanicimailiniz"
Yukarıda yer alan işlemleri tamamladıktan sonra Git sürüm kontrol sistemini bir projenizde kullanmaa başlayabilirsiniz. Git kullanmak istediğiniz dosya dizinine gelerek komut satırından
git init
komutunu işlettiğinizde projeniz için henüz boş olan bir repository oluşur. Fakat henüz dizinde yer alan herhangi bir dosya sürüm kontrol sistemi altına alınmamıştır. Dizinde yer alan tüm dosyaları sürüm kontrol sistemi altına alabilmek için aşağıdaki komutu işletebilirsiniz.
git add .
Bu komut farklı parametler alabilmektedir fakat bu yazının amaçları arasında ayrıntılı bir anlatım olmadığı için bu detayları yazıda paylaşmayacağım, fakat öğrenmenizi tavsiye ederim.
Ardından sistemin şu anda neler yaptığını görmek için "git status" komutunu işletip durum ile ilgili bilgiyi gözden geçirebilirsiniz. Bu adım bir önceki komutun ne anlama geldiğini güzel bir şekilde ortaya koyacaktır.
git commit -m "mesajınız"
Yukarıda yer alan komut ile birlikte "git add ." ile işlenen dosyaları .git içerisindeki head bölümüne ekler. Bu işlem yerel makinemizde gerçekleşir. Uzak sunucuda herhangi bir değişikliğe neden olmaz.
Çift tırnak içerisinde yazılan commit mesajıdır. Örneğin bir projede nasıl değişiklikler yaptığınızı commit mesajlar ile kayıt altında tutabilirsiniz.
Yerel makinemizde Git sistemini kullanımından bahsettik şimdi bu sistemi uzak sunucular ile birlikte nasıl kullanacağımızdan bahsedelim.
Projenizi uzak bir sunucuya göndermek için kullanılan servisler vardır. Bu servislerden başlıcaları GitLab, GitHub, Bitbucket denilebilir. Bu servisleri kullanmak istiyorsanız kullanıcı olarak servislere kayıt olmanız gerekmektedir.
Servislerin kullanımı ve arayüzleri oldukça sade ve kullanışlıdır. Bu nedenle kullanıcıların zorlanmadan bir repository oluşturabileceğini düşünüyorum. Projeninizi oluştururken bu projeyi başkalarının görüp göremeyeceğine dair ayarlamaları yapabilirsiniz.
Servisler aracılığı ile oluşturduğunuz depoyu projenizin bulunduğu dizinde kullanmak için eklemeniz gerekmektedir. Bu adımda aşağıdaki komutu kullanmalısınız. Burada ben örnek bir repository yolu ekledim siz kendinize ait repository yolunu eklemelisiniz.
git remote add origin git@gitlab.com:gkhnaryz/deneme.git
Bu komut ile birlikte depomuzda yaptığımız değişiklikleri nereye göndereceğimizi belirtmiş oluyoruz. Bu komut sonrasında tek yapmamız gereken proje dizinimizde yer alan dosyaları göndermek için komut vermek olacaktır.
git push -u origin master
komutu ile proje dizinimizdeki dosyaları uzak sunucuda yer alan depomuza gönderebiliriz.
Meşe Bilişim'de Software Testing dersi süresince geliştirdiğimiz her projeyi public şekilde Git repolarımızda yayınlayacağız. Temel seviyede Git sürüm versiyon kontrol sisteminden bahsetmek istedim. Bu yazının oldukça eksik olduğunu tekrar belirtmek isterim, okuyanlara tavsiyem mutlaka daha fazla merak ediniz ve Git resmi internet adresi olan git-scm.com adresini ziyaret ediniz.
Git sürüm versiyon kontrol sistemi hakkında çok daha doğru bir anlatımı www.git-scm.com adresinde bulabilirsiniz.
Git Komutları
git init
git add . # değişen yada yeni oluşturulan dosyaları güncellenecekler listesine ekler.
git diff #mevcut durum ile en son gerçekleştirilen güncelleme arasındaki farkları gösterir.
git status #gerçekleşen değişiklikleri listeler.
git log # güncelleme geçmişini gösterir.
git clone git@gitlab.com:gkhnaryz/deneme.git # bir depoyu klonlar.
git pull --rebase # depodan son değişikleri alır.