Git

Ensar Hamzaçebi <ensar.hamzacebi@bil.omu.edu.tr>

Fatma Tercan <fatma.tercan@bi.omu.edu.tr>

Mart 2014

Presenter Notes

Git Nedir

  • Dağınık Versiyon Kontrol Sistemi

  • Kod deposu çok merkezden yönetilebilir

  • Open source

Presenter Notes

Çözüm Üretilen Problemler

  • Kodlar güvenli bir şekilde saklanır

  • Projede birden çok kullanıcı değişiklik yapabilir

  • Karışıklıkların önüne geçilir

Presenter Notes

Çözüm Üretilen Probemler

  • Ne zaman hangi değişiklik yapıldı görülür

  • Offline olarak çalışılabilir

  • Gereksinimlere göre projede dallanma yapılır

Presenter Notes

Git Alternatifleri

  • CVS (Concurrent Version System)

  • SVN

  • BitKeeper

  • Mercurial

  • Perforce

  • Bazaar

  • Saire

Presenter Notes

Avantajlar

  • Hızlıdır

  • Merkezil değil dağınıktır

  • Disk alanı verimli kullanılır

  • Conflict oluşma riski oldukça azdır

  • Veri kaybı olmaz

  • Öğrenmesi kolaydır

Presenter Notes

Dezavantajlar

  • Öğrenimini zor bulanlar var

  • Kurulumu sırasında sorunlar olabilir

  • Hata mesajları ilk başta anlaşılamayabilir

Presenter Notes

Geliştiriciler

  • Linus Torvalds

  • Junio Hamano

Presenter Notes

Kurulum

    $ sudo apt-get install git
  • Debian/Ubuntu üzerinde kurulum bu şekildedir

Presenter Notes

Depo Oluşturma

github.com‘dan depo oluşturma

  • create -> New repostory

  • Deponun adı girilir

  • Public/Private seçilir

  • Create repository tıklanır

Presenter Notes

Depo Oluşturma

  • Yerelde boş bir dizin oluşturulur ve dizine girilir

  • Depo ilklenir (initializing)

    $ git init
    
  • .git otomatik olarak oluşturulur

    • Depo ile ilgili ayarlar tutulur

    • config dosyasının içinde depo ayarları tutulur

Presenter Notes

Depoya Dosya Ekleme

  • Bütün depoyu ekleme

    $ git add .
    
  • Belirli bir dosyayı ekle

    $ git add <dosya_adi>
    

Presenter Notes

Yerelde Değişiklikleri Kaydetme

  • git commit kullanılır

    $ git commit -a -m "<metin>"
    

Presenter Notes

Uzaktaki Depoya Gönderme

  • git push ile gönderilir

  • master dalına push etme

    $ git push origin master
    
  • gh-pages dalına push etme

    $ git push origin gh-pages
    

Presenter Notes

Uzak Depodan Yerelin Güncellenmesi

    $ git pull

Presenter Notes

Mevcut Dizini Depo Yapma

  • Github’da repo oluştur

  • Yereldeki mevcut dizinde:

    $ touch README.md
    
    $ git init
    
    $ git add README.md
    
    $ git commit -m "first commit"
    
    $ git remote add origin git@github.com:ensr/gitDeneme.git
    
    $ git push -u origin master
    

Presenter Notes

Depo Klonlama

  • Github’daki depoyu klonlama

    $ git clone git@github.com:<hesap>/<depo>.git
    

Presenter Notes

SSH Protokolü

  • En çok kullanılan erişim yöntemi

  • Depoyu oku - Depoya yaz

  • Erişim güvenlidir

  • Tüm data transferi şifrelenir

  • Sadece kendi makinenizden erişim mümkün

Presenter Notes

Git Protokolü

  • Erişim güvenliği yok

  • Depo herkes tarafından klonlanabilir

  • Depo’ya push yapılamaz (read-only accses)

  • En hızlı erişim yöntemi

Presenter Notes

Http/s Protokolü

  • Kurulumu kolay

  • read-only accses

  • Gönderimler şifrelenebilir

  • SSL üzerinden veriler aktarılabilir

Presenter Notes

Yeni Dal Oluşturma

  • Yeni dal oluşturma branch ile yapılır

    $ git branch <yeni_dal_adı>
    

Presenter Notes

Dallar Arası Geçiş

  • İstenilen dala checkout ile geçilir

    $ git checkout <dal_adı>
    
  • Hangi daldasın bak

    $ git branch
    
     *master
    
      slave
    
  • Dalı oluştur ve dala geç

    $ git checkout -b <yeni_dal_adı>
    

Presenter Notes

Dalları Birleştirmek

  • Önce master dalına geçilir

    $ git checkout master
    
  • Dallar birleştirilir

    $ git merge <dal_adi>
    

Presenter Notes

Yapılandırma Dosya ve Dizinleri

  • /etc/gitconfig sistemdeki tüm kullanıcıların ayarlarını tutar

    $ git config --system <komut>
    
  • ~/.gitconfig kullaniciya özeldir

    $ git config --global <komut>
    
  • <yerel_depo>/.git/config bulunduğu depoya özeldir

    • Diğer ayarları override eder

    • .git/config ayarları /etc/gitconfig‘den daha baskındır

Presenter Notes

Bazı Yapılandırma Ayarları

  • Kullanıcı ismi ve eposta ayarlama

    $ git config --global user.name "ensr"
    
    $ git config --global email "ensar.hamzacebi@bil.omu.edu.tr"
    
  • Ayarları listelemek için

    $ git config --list
    

Presenter Notes

Dosya Göz Ardı Etme

  • .gitignore dosyası ile yapılır

  • Göz ardı edilecek dosya ve dizinler listeye eklenir

    $ touch .gitignore
    

Presenter Notes

Uzak Depoyu Değiştirme

  • /.git/config ayarlarını aç

  • [remote origin] kısmındaki url değiştirilir

Presenter Notes

Teşekkürler

Presenter Notes