Yeni Başlayanlar için Git

Serappaltun
Kod Gemisi
Published in
4 min readMay 15, 2018

Git; yazılım geliştirme sürecinde, kullanılan dosyalarda yapılan değişiklikleri zamana bağlı olarak kaydeden bir versiyon kontrol sistemidir (Version Control System).

Bu teknolojinin ortaya çıkışına kısaca değinecek olursak:

Eskiden bir projede tek başına çalışılırken, belli aralıklarla üzerinde çalışılan dosyaların bir yedeği alınıp arşiv olarak saklanıyordu. Fakat birden fazla kişinin çalıştığı projelerin yönetimi zorlaşmaya başladı. Bu problemi çözmek için birçok fikir ortaya çıktı, ancak Git şu an kullanılan en etkili ve yaygını.

Git, aynı zamanda dağıtık (distributed) bir versiyon kontrol sistemi. Bu demek oluyor ki; merkezi bir sunucu yok, bunun yerine birden çok Git deposu var. Ancak yine de Git depolarından birini merkezi bir yermiş gibi kullanabiliyorsunuz. Bu sayede projenin uzak sunucudaki kopyasını bilgisayarınıza kopyalayabiliyorsunuz. Git, bir kişinin geliştireceği projelerde kullanılabileceği gibi birden fazla kullanıcının yürüteceği projelerde de kullanılabilir. Sürüm kontrol araçları birden fazla kişinin çalıştığı durumlarda aynı dosya üzerinde çalışma imkanı sağlar. Bu olguyu şu şekil de görselleştirebiliriz:

Git teknolojisinde branch mantığı vardır. Branch farklı değişikliklerin farklı gelişim aşamalarındaki kollara denir. Yukarıdaki şekilde görülen X ve Y iki ayrı branchtir.

Git’in Çalışma Mantığı

Git, dört katmandan oluşmaktadır:

  • Birincisi, çalışmakta olduğunuz klasör: working
  • İkinci katman staging aşaması: Projenizde bazı değişiklikler yaptığınız fakat bu değişiklikleri henüz kaydetmediğiniz alandır.
  • Üçüncüsü, değişikliklerinizi kaydettiğiniz commit operasyonu: Bu katman değişikliklerinizin local repository içine yazıldığı katmandır.
  • Son aşama ise değişikliklerin uç birime iletildiği alandır.

Git Komutları

Git ile hayatımıza girecek temel bazı komutlar ve ne işe yaradıklarına şöyle bir göz atalım:

  • git init

Bu komut, bulunduğumuz dizinde .git adında bir dizin oluşturur ve bir Git repository’si haline getirir. Daha sonra bu repository’yi uzaktaki bir sunucuya gönderebilirsiniz.

  • git config

Kullanıcı adı, mail vb. yapılandırma ayarlarının yapıldığı komuttur.

  • git status

Yapılan değişiklikleri; yani eklenen, silinen dosyaların hangi branch’te olduğunu gösterir.

  • git add <dosya_ismi>

Projeye eklenmek istenen dosyaları add komutuyla Git içerisine ekler ve git status ile tekrar kontrol edebiliriz.

  • git reset <dosya_ismi>

Dosyalarda yaptığımız değişiklikleri geri almak istediğimizde bu komutu kullanırız.

  • git commit

Bu komut yoluyla projedeki değişikleri local repository’e kaydederiz.

  • git log

Projede hangi commit’lerin yapıldığını görüntülememizi sağlar.

  • git branch

Proje içerisinde bulunan brach’lerin oluşumlarını görmek istediğimizde bu komutu kullanırız. Bize Local repository’de bulunan tüm branch’lerin bilgisini verir.

  • git branch <branch_ismi>

Proje içinde yeni brach oluşturmak istediğimizde kullanırız.

  • git branch –d <silinecek_branch_name>

Yeni branch oluşturuldu, geliştirmeler tamamlandı, ana branch ile birleştirildi; bunların ardından oluşturulan branch’i silmek istersek bu komutu kullanırız.

  • git checkout <branch_ismi>

Branch’ler arası geçiş yapmak istediğimizde kullanırız. Yeni bir branch oluşturulduğunda doğrudan o branch’te çalışmaya başlamayız; öncelikle o branch’e geçmemiz gerekir.

  • git checkout -b <branch_ismi>

Bu komutta ise iki işlem aynı anda yaptırılır: Yani branch oluşurulur ve oluşturulan branch’e geçiş yapılır.

  • git pull

Proje içerisinde master branch’den projenin en güncel halini almak için kullanılır.

  • git push

Proje geliştirme aşamasında commitlenmiş değişiklerin uzaktaki sunucuya iletilmesini sağlayan komuttur.

  • git merge <branch_ismi>

Yeni branch oluşturulup üzerinde çalışıldıktan sonra proje bütünlüğünü sağlamak için branch’lerimizi birleştirmeliyiz. Merge komutu bu işlemi gerçekleştirmek için kullanılır.

$ git checkout dev
$ git merge serap

Bu komut dizisi ile serap adlı branch’i dev branch’i ile birleştirdik.

  • git clone <url>

Uzak sunucudaki bir proje üzerinde geliştirme yapmak istersek, o projeyi bilgisayarımıza kopyalayıp ardından geliştirmeye devam etmeliyiz. Bu komutla da bilgisayarımıza kopyalama işlemini gerçekleştiririz.

$ git clone https://github.com/Serappaltun/HRSpringBootApp
  • git fetch

Uzak sunucuda bulunan branch’lerin bilgisini lokalimize indirir.

Git komutlarının her an elinizin altında olmasını veya aklınızda kalmasını isterseniz çeşitli Git cheat sheet çıktıları alıp gözünüze takılan yerlere asabilirsiniz.

--

--