Image for post
Image for post
Photo by Eugen Str on Unsplash

Geliştirici Araçları

Git Komutları ve Kullanımı

Günümüzde ortak projeler geliştirmek, açık kaynaklı kişisel kod geliştirmek için bir çok kişi git tercih ediyor. Bu kaynak kontrol aracı ile geliştirilen projeler host edilmesi için GitHub, GitLab platformlarıda oldukça popüler olarak kullanılmaktadır.

2 Sebepten dolayı kaynak kontrol sistemine ihtiyaç duyarız;

  • Kaynak kodunuzun değişimlerini takip etmek ve bunu yönetebilmek
  • Birlikte kod geliştirmek.

Git bu ihtiyaçları karşılamak hazır bir takım fonksiyonlara sahip. Aşağıda jrebel hazırlamış olduğu görselde bu fonksiyonları görebilirsiniz.

1. Git Komutları

Image for post
Image for post
image from https://www.jrebel.com/blog/git-cheat-sheet

Bir klasör oluşturup içerisinde

git init 

fonksiyonu çalıştırdığımızda .git altında ufak bir dosya yönetim sistemi oluşturduğunu görebilirsiniz.

Bu klasörün içerisinde dosyalarınızın state(versiyonlarını) tutacaktır.

  • Bu dosyalar arasındaki farklar,
  • commit sırasındaki kesitler

hepsi bu dosyalar içerisinde tutulmaktadır.

Image for post
Image for post
klasörde yer alan git dosyası ve .git içerisinde neler bulunur
HEAD
branches
config
description
hooks
index
logs
objects
packed-refs
refs

.gitignore dosyası git dosya sistemine katılmasını isteMediğiniz binary vb dosyalar için kullanılır. Örnek istenmeyen dosya türlerini bu linkinden erişebilirsiniz.

2. Git Veri Akışı

Aşağıdaki resimden git veri akışının nasıl gerçekleştirildiğini görebilirsiniz. Aşağıdaki komutlarla bunun nasıl çalıştığına bakalım.

Image for post
Image for post

3. Untracked Files (İzleri Oluşturulmamış Dosyalar)

a1.txt ve a2.txt dosyalarını çalıştığınız klasöre eklediğimizde bunları henüz izleri oluşturulmamıştır.

git status

fonksiyonu ile izi oluşmamış(untracked) dosyaları görebililirsiniz.

Image for post
Image for post

4. Staging Taşıma

git add 

fonksiyonu ile a1.txt , a2.txt dosyasını Staging Alanına geçirmiş oluruz.

Image for post
Image for post
Git Local Operations
Image for post
Image for post
git add nasıl çalışır ?

İstediğiniz dosyayı Staging Alanından çıkarmak için

git reset HEAD <filename>

komutunu kullanmanız yeterlidir.

5. Local (Kendi Çalışma Ortamınızaki) Dosyaları Değiştirmek

a1.txt dosyasınde değişiklik yaptım

git status 

dosyanın local tarafta modified olduğunu görebilirim.

git diff 

ile de baktığımda dosyada hangi alanların değiştiğini görebilirim

git checkout — a1.txt

ile yaptığınız değişikliği geriye alabilirsiniz.

Image for post
Image for post
Dosyalar üzerinde Çalışmak

6. Commit (Save to Local Repo)

git commit -m ‘msg’ 

komutu ile dosyalarınızı Local Repo’nuzda kaydedin..

Image for post
Image for post
local repoya kayıt

7. Push (Save to Remote Repo)

git push origin master 

komutu ile uzaktaki repo üzerine kayıt yapabilirsiniz.

Image for post
Image for post

8. Pull (Get From Remote Repo)

git pull

Push yapmadan bir pull yapın çü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 gerekir.

Image for post
Image for post

9. Conflict/Merge

Gerçek dünyada siz bir dosyada bir güncelleme yaparken başka birisi o dosyayı silmiş, ismini değiştirmiş olabilir. Bunun için bu farklılıkları çözmemiz gerekir. Oluşabilecek durumlar.

1nci tip Sorun: İki kişinin aynı dosyada değişiklik yapması .
Çözüm: Bendeki kaynağı kullan, Ondaki kaynağı kullan, İkimizdekini mantıklı bir şekilde gözle birleştir.

git pull 

komutunu çalıştırdığınızda CONFLICT oluşur. Dosyada <<<<<HEAD olarak gösterilen kısımlar Local değişiklik === Remote’dan gelen değişiklikleri görebilirsiniz.

Image for post
Image for post

2nci tip Sorun: Birisinin çalıştığı dosyaları ,diğer kişinin silmesi
Çözüm: Bendeki kaynağı kullan, Ondaki kaynağı kullan..

Değişikliği yapıp direk push etmeye çalıştığımda

(fetch first) 

uyarısını aldım.

Image for post
Image for post

2nci tip sorunda AutoFix işleminin yapılamadığını görebilirsiniz. Bunun için kendiniz dosyayı local repo’dan çıkarıp tekrar commit yapmanız gerekir.

Image for post
Image for post

10. Değişikliklerin Tarihçesini ve Detayını Gör

git logs 

komutu ile değişikliklerin tarihçesini görebilirsiniz..

Image for post
Image for post
git shows 

komutu ile ilgili comit içerisinde yapılan değişiklikleri görebilirsiniz..

Image for post
Image for post

11. Git Branch Oluşturma

Genelde projelerde master, development, bugfix, release, poc amaçlı dallar(branch) oluşturulur. Bu dalları oluşturmak git ile oldukça basittir .

git branch 

komutları ile branch lerinizi kolay bir şekilde yönetebilirsiniz..

Image for post
Image for post

Referanslar

Uzun süredir farklı sektörlerde (Askeri, Telekomünikasyon, Devlet, Bankacılık, Sigortacılık, Tübitak, SaaS) yazılımlar geliştiriyorum. Bu süreçte Havelsan, Milsoft, T2, Cybersoft ve Thundra firmalarında yönetici ve yazılım mühendisi olarak çalıştım. Deneyimlerimi ve teknolojik bilgi birikimi mi olabildiğince OnurDayibasi.com adresinde toplamaya çalışıyorum. Tüm yazılarıma ve daha fazlasını bu site üzerinden erişebilirsiniz.

Written by

Senior Frontend Developer at Thundra

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store