Git Komutları ve Kullanım Kılavuzu

Git Nedir?

En basit tanımı ile versiyon kontrol sistemidir. Geliştirdiğiniz kodların bilgisayarınız haricinde güvenli olarak depoalanmasını sağlar. Git, Linus Torvalds tarafından tasarlanıp geliştirilmiştir.

Gerekli Olanlar Nelerdir?

Kullandığınız işletim sistemine göre git kurulum paketini indirip kurmanız gerekmektedir.


OSX için İndir | Windows için İndir | Linux için İndir


Git Neden Önemlidir?

  • Kaynak kodundaki değişiklikleri takip edebilmek ve yönetebilmek
  • Ekip/Takım halinde ortak geliştirmek

Kavramlar

  • Repository: Tüm sürüm bilgilerinin saklandığı depodur.  Local ve remote olarak iki farklı şekilde konumlanabilir. Bütün versiyonlama bilgileri .git uzantılı bir dosya içerisinde tutulur. Bunun olduğu klasörde repository olarak adlandırılır.
    • Versiyonlamak istenmeyen dosyalar ve klasörler ise  .gitignore uzantılı dosya içerisinde saklanır.
    • Proje içerisinde sadece git init komutu ile versiyonlama işlemi başlatılabilir.
    • Bu klasörün içerisinde dosyalarınızın state(versiyonlarını) tutacaktır.
  • Staging Area: Sağlıklı bir versiyonlama için yerel bilgisayar (local) üzerinde yapılan değişiklikler uzaktaki sunucuya (remote) gönderilmesi gerekmektedir. Bu işlem başlatılmadan önce, git’deki ilgili komutlar ile değişikliklerin biriktirildiği alana verilen addır.
    • İnternet olmasa bile geliştirme yapabilmenize olanak sağlar.
  • Branch: Git ağaç mantığı ile çalışmaktadır. Proje versiyonlandığı zaman git otomatik olarak master branch’ini oluşturur ve herkes bu branch üzerinde çalışmaya başlar. Büyük ve çok geliştiricili projelerde bu durum kaos yaratır. O nedenle, benzer konularda geliştirem yapanlar farklı branch’ler üzerinde  birbirlerini ezmeden hareket edebilir.
  • Workflow:
  • Working directory: Gerçek dosyaların tutulduğu dizindir.
  • Github: Sürüm kontrol sistemi olarak Git kullanan yazılım projeleri için yaygın olarak tercih edilen çevrimiçi depolama hizmetidir. Açık kaynaklı proejeler için ücretsiz depolama imkanı sunar. Aynı zamanda eğitim amaçlı kullanımlar için de ayrıcalıkları vardır. Bu jestlerine Microsoft tarafından satın alındıktan sonra da devam etmektedir.
  • GitLab: GitHub’ın kullanıcılara sağladığı işlevlerin tamamını sunan bir Git servisidir.

Git Veri Akışı

Git Komutları

KOMUT AÇIKLAMA
git config
Kullanıcı adı, mail gibi yapılandırma ayarlarını yapacağınız komuttur.

git config —global user.name “kemal” 
git config —global user.email kemalsahin@gmail.com
git status
İz oluşturulmamış dosyaları listeler.
git add
Dosyaları staging area’ya taşır.
git reset HEAD filename
İstediğiniz dosyayı staging area’dan çıkartır.
git checkout —  filename
Yaptığınız değişikliği geriye alabilirsiniz.
git diff
Dosyanın hangi alanlarının değiştiğini listeler.
git commit -m "msg"
Dosyalarınızı Local Repo’nuzda mesaj ile beraber kaydeder.
git commit -a
Bütün dosyaları commit eder.
 git commit -am "msg"
(İki parametre bir arada kullanım.) Belirtilen mesaj ile tüm dosyaları commit eder.
git push origin master
Uzaktaki repo üzerine kayıt yapabilirsiniz.
git pull
Push yapmadan bir pull yapmak daima iyidir. Çünkü başkaları Remote Repo’da değişiklikler yapmış olabilir. Önce değişiklikleri alıp sonrasında kendi değişikliklerinizi yapmanız daha sağlıklı olacaktır.
git logs
Değişikliklerin tarihçesini gösterir.
git branch
Branch’leri kolay bir şekilde yönetebilirsiniz.
git branch branchAdi
Bulunduğumuz branch’den yeni bir branch çıkabiliriz.
git branch -v
Projedeki local branchleri son commit bilgisi ile görebiliriz.
git branch -va
Local’deki ve remote’daki branchleri liste halinde son commit bilgileri ile görebiliriz.
git checkout branchAdi
Branch’ler arasında geçiş yapabiliriz.
 git branch -d branchAdi
Local’deki belirttiğiniz branch’i siler.
 git branch -dr branchAdi
git push origin :branchAdi
Remote’deki belirttiğiniz branch’i siler.
git stash
Bir branch üzerinde çalışırken tam olarak bitmeyen tüm değişiklikleri commitlemeden kayıt altına alıp branch’i ilk durumuna döndürmek için kullanılır. Bu komut commitlenmemiş tüm değişikliklerimizi kayıt altına alıp branch’i ilk haline çevirir. git stash list komutu ile de geçici olarak kayıt altına alınan değişikliklerin listesi görüntülenir.
git stash pop
Stash list’de olan en üstteki değişikliği geri yükler ve değişiklikleri siler.
git stash apply stash@{listId}
Stash list’deki değişikliği silmeden geri yükler.
git stash drop
Değişikliği geri yüklemeden stash list’den siler.
 git push origin branchAdi
Branch remote repository’de ilk kez oluşturulacaksa bu komut kullanılır.
git stash
Bir branch üzerinde çalışırken tam olarak bitmeyen tüm değişiklikleri commitlemeden kayıt altına alıp branch’i ilk durumuna döndürmek için kullanılır. Bu komut commitlenmemiş tüm değişikliklerimizi kayıt altına alıp branch’i ilk haline çevirir. git stash list komutu ile de geçici olarak kayıt altına alınan değişikliklerin listesi görüntülenir.