Ana içeriğe atla

Git Nedir ve Nasıl Kullanılır?

Meşe Bilişim şirket kurucusu Şahin Mersin ile birlikte Software Testing derslerimize devam ediyoruz. Ders süresince kullanacağımız Git sistemi ile ilgili kısa bir yazı yazmak istedim. Bu yazının amacı ders sırasında öğrendiklerimizi yazılı hale getirmek ve sistem hakkında daha fazla merak uyandırmaktır. Git ile ilgili birçok bilinmesi gerekeni yazıya dahil etmeyeceğim.

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.




Yorumlar

Bu blogdaki popüler yayınlar

Meşe Bilişim Software Testing Dersi

Manisa Celal Bayar Üniversitesi Bilgisayar Mühendisliği Bölümü ile bazı özel ve kamu kurumları ortaklığında gerçekleştirilen Software Testing Dersi dahilinde bugün Meşe Bilişim şirketinde şirket kurucusu Şahin Mersin ile ilk dersimizi gerçekleştirdik.

Üniversitenin Bilgisayar Mühendisliği bölümünde okuyan 3 veya 4'üncü sınıf öğrencileri tarafından tercih edilebilen Software Testing dersi intörn eğitim modelini temelinde barındıran bir ders ve bence öğrenciler için müthiş bir fırsat.

Manisa Teknokent içerisinde yer alan Meşe Bilişim şirketinde bir dönem süresince Software Testing dersini almaya devam edeceğiz. Şirket benimle birlikte 10 kişilik bir öğrenci kadrosuna bu dönem ev sahipliği yapacak.

Dersin ilk gününde Meşe Bilişim şirket kurucusu Şahin Mersin, biz öğrencilerine dönem süresince ders dahilinde yapacaklarımızdan bahsetti. Yaklaşık 5 farklı projeden söz eden Şahin Bey'in açık kaynaklı projelere katkıda bulunmak hedefi açıkcası beni etkiledi. Bu doğrultuda, ürettiğimiz…

Mqtt Nedir?

Message Queuing Telemetry Transport (MQTT) kelimelerinin baş harfleri ile tanıdığımız bu teknoloji mesajın karşı tarafa ulaştırılması için kullanılan haberleşme protokolüdür.  Haberleşme için mesaj yayınlayan, mesaja abone olan ve mesaj trafiğini kontrol eden yöneticiden oluşmaktadır. Mesaj trafiğini kontrol eden yöneticiye BROKER, mesaj yayınına PUBLISH ve aboneye SUBSCRIBE denir. Mesaj alışverişi publisher dan subscriber lara doğru yani yayıncılardan abonelere doğru olmaktadır. MQTT de asenkron haberleşme protokolü kullanılmaktadır. Mesaj yayıncıları ve mesaj alıcılar arasında eşzamansız olarak veri taşınmaktadır. Diğer haberleşme yapılarına göre basit oluşu ve minimum kaynak tüketmesi sebebiyle “machine-to-machine” (M2M)  makineden makineye veri iletiminde ve (IOT) “Internet of Things” İnternete bağlı nesnelerin mesajlaşmasında tercih edilmektedir.   MQTT IBM de çalışan Dr Andy Stanford-Clark ve Arcom da çalışan Arlen Nipper (şu an Eurotech) tarafından 1999 yılında oluşturulmuştur…

Meşe Bilişim Logolar