Kişisel web sayfamda yazılım, teknoloji ve genel hayat hakkında paylaşımlar yapmayı hedefliyorum.

Git Nedir? Nasıl Çalışır? Git Temel Komutları

Bu yazıdaki konumuz Temel Git Komutları fakat asıl konumuza geçmeden önce yazılımcının can yeleği Versiyon Kontrol Sistemi’den bahsetmek istiyorum. Çünkü Git de aslında VCS örneğidir. Tıpkı Subversion, CVS gibi.

Versiyon Kontrol Sistemi(VCS), yazılım ekibinin ya da bir geliştiricinin proje zaman içinde değişen kaynak kodlarını yönetmek için kullanılan bir sistemdir.

  • VCS, kodda yapılan her türlü değişikliğin özel bir veri tabanındaki kaydını tutar. Herhangi bir zamanda kod geri çevirebilir ve hata analizine yardımcı olmak için kodun önceki sürümlerini karşılaştırabilir.
  • Dallanma ve birleşme(Branch & Merge) özelliği ile aynı kod üzerinde birden fazla kişi çalışabilir. Daha sonrasında bu farklı dallar birleştirilebilir.

Git ise günümüzde en çok kullanılan açık kaynaklı versiyon kontrol sistemidir. Peki Git bize neler sunuyor:

  • Dağıtık (Distributed) yapısı ile sunucudan bağımsız hatta internetsiz çalışabilme
  • Branch yapısı ile projenin ana dalına müdahale etmeden farklı dallarda çalışma, birleştirme, gezinme
  • Diğer ürünlere kıyasla fark edilebilir hız farkı

Git Çalışma Yapısı

Git çalışma yapısında 4 katman vardır:

  • Working, çalışmakta olduğumuz katmandır.
  • Staging, projedeki kaydedilmemiş değişikliklerin tutulduğu katmandır.
  • Local Repository, yapılan kayıtlı değişikliklerin tutulduğu katmandır.
  • Remote Repository, uzak sunucunun devrede olduğu katmandır.

Verilerimizi bu katmanlar arasında basit Git komutları ile yönetebiliriz. Gelin GIT Temel Komutlara bakalım.

GIT Temel Komutlar

  • git init

Bu komut, bulunduğumuz dizinde .git adında bir repository oluşturur. Bu repository uzak sunucuya bağlanabileceği gibi localde de tutulabilir.

  • git config

Kullanıcıya özgü konfigürasyonlar yapılmak istendiğinde kullanılır. En çok kullanılan örneklerinden birine bakacak olursak:

git config --global user.email info@mustafayigit.net
git config --global user.name "Mustafa YIGIT"
  • git add

Bir dosyayı Git’e entegre etme işlevidir. Komut sonrasında dosyadaki değişiklikler repository içinden takip edilebilir hale gelecektir.

git add . // mevcut dizindeki tüm dosyaları ekler
  • git status

Git reposundaki değişiklikleri kontrol ettiğimiz komuttur. Working directory ve Staging’e alınmış dosyaları görebiliriz.

git status
  • git commit

Muhtemelen en çok duyulan komuttur. Stagin areadaki yani git add diyerek takibe aldığımız bir dosyayı local repositorye taşıma işlevi görür. Böylece localde yaptığımız değişiklikleri mühürlemiş oluruz. Diğer parametreler için tıklayın.

git commit -m "Bind writer model with writer adapter"

!!! Commit sonrası değişiklikler push işlemi yapmadan remote sunucuya gitmez!

  • git push

Local repodaki değişikleri tanımlı olan remote repoya gönderme işlemidir.

git push origin master
  • git pull

Uzak sunucudaki değişiklikleri localdeki çalışma alanına çekmek için kullanılır.

git pull 
git pull origin master //uzak sunucu ve dal(branch) belirtilmiştir
  • git log

Commitleri detaylı bir şekilde görüntüler.

git log
  • git branch

Local repositoryde bulunan branchler ile ilgili işlemler için kullanılır.

git branch // branchleri listeleme
git branch dev // dev adında yeni bir dal oluşturur
git branch -d dev // dev adlı branchi siler
  • git checkout

Branchler arası geçiş için kullanılır.

git branch dev // dev adında branch açar
git checkout dev // dev branchine geçer

git checkout -b dev // dev adında branch oluşturup ona geçiş yapar.
  • git merge

Branchleri birleştirmek için kullanılır.

git checkout -b dev
//...
git merge master
  • git diff

Farklılıkları görüntülemek için kullanılır.

git diff // tüm değişiklikleri listeler
git diff master..dev // branchler arasındaki farkları listeler
git diff fcb252..5a301 // branchler arasındaki farkları listeler
  • git clone

Uzak sunucudaki repositoryi locale çekmemizi sağlar

git clone https://github.com/android/architecture-components-samples.git
  • git fetch

Uzak sunucudaki branchlerin bilgilerini çeker.

  • git reset

Değişiklikleri geri almak, silmek için kullanılır.

git reset --hard HEAD // yerelde yapılan değişiklikleri siler.

Evet bu yazımızın da sonuna geldik. Tabiki komutlar bunlarla sınırlı değil fakat en çok kullanılanları açıklamaya çalıştım. Daha fazlası için tıklayınız. Bir sonraki yazıda görüşmek üzere 💻

Share

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir