4 min read

git ile versiyon kontrolü

Bu yazida git ile repo olusturma, klonlama, kaydetme ve guncelleme islemlerini uyguladik. Versiyon kontrolu ile projenizi hep guncel tutarak bir cok kullanici ile de paylasabilirsiniz.
git ile versiyon kontrolü

Versiyon kontrolü projelerinizde tutarlılık sağlamak, bir çok kullanıcı ile beraber ayni proje üzerinde kontrollü bir şekilde çalışabilmek için yapılması şart olan bir işlemdir. Siz de kendi kişisel projeleriniz için bile olsa, uzak bir sunucu kullanmasanız dahi, lokal bir repository oluşturarak ilerlemelerinizi kayıt altında tutabilirsiniz.

Özellikle yapılan değişikliklerin listesi tutulduğundan dolayı herhangi bir noktadan diğerine geri dönmenin mümkün olması, yapılan değişikliklerin tek tek açıklamalarını geriye dönük olarak okuyabilmek büyük bir kolaylık.

Şunu da belirtmek isterim ki, git kullanmak veya gizli/private repository sahibi olmak için Github web sitesine veya başka bir özel sunucuya bağımlı değilsiniz. Kendi sunucunuz varsa buraya git kurarak kendi özel repository'lerinizi güvenli şekilde saklayarak, sunabilirsiniz. git'in açık kaynak ve ücretsiz bir yazılım olması bunu mümkün kılıyor.

Öncelikle git versiyonumuza bakarak güncel olup olmadığını kontrol edebiliriz:

git --version
git versiyonununun kontrol edilmesi

Yeni repo oluşturma

init komutu ile yeni bir repo oluşturarak proje takibini başlatıyoruz.

git init

Projeye yeni dosya ekledikten sonra add komutu ile yeni eklenen bütün dosyaları repoya ekliyoruz.

git add .

Repoya yapılan değişiklikleri kaydetmek için commit komutu ile mesaj bilgisi ekliyoruz.

git commit -m [mesaj]
Not: Siz de benim gibi subversion (svn) kullananlardansanız "commit" kavramında kafa karışıklığı yaşayabilirsiniz. svn'de commit dediğimiz zaman değişiklikler sunucuya yazılır. git sisteminde ise commit sadece lokale kaydeder. git'de sunucuya yazmak için push komutu kullanmanız gerekir. Kisacasi iki sistemde commit kelimesi farklı anlamlara gelir; bunu hatırlamakta fayda var.

Reponun durumuna göz atmak için status komutu kullanabiliriz.

git status

Şimdiye kadar yapılanlara topluca göz atalım. İlk olarak lokalde bir repo oluşturduk ve devamında buraya yeni bir dosya ekleyerek bu değişikliği lokale commit'ledik, yani kaydettik.

yeni repo olusturarak ilk dosyanin commitlenmesi. bir mesaj yoksa commit edilmez.

Repoyu lokalde klonlama

Artık bu projeyi başka bir yere kopyalamak istersek klasör klasör, dosya dosya kopyalamamıza gerek yok. Tek yapacağımız şey repoyu klonlamak.

git clone [proje-dizini] [kopyalanacak-dizin]
lokaldeki reponun baska bir dizine kopyalanmasi

Remote ile repoyu uzaktaki bir sunucuya kaydetme

Lokalde çalışmak yeterli değilse, projeyi farklı cihazlara kopyalamak, bu cihazlardan projeye müdahalede bulunmak istiyorsak bir sunucuya kaydetmemiz gerekir. Böylece isteyenler sunucudan reponun en güncel halini kopyalayıp kendi ortamlarında çalışabilir.

Önce sunucuda boş bir repo oluşturalım. Github'i kullanacaksanız web sitesinden yeni bir repo oluşturun. Ben kendi hesabımda şu repoyu oluşturuyorum:

gulangurman/version-control-with-git
Contribute to gulangurman/version-control-with-git development by creating an account on GitHub.

Şimdi lokaldeki repoya bu adresi remote olarak ekleyeceğiz.

git remote add origin [repo-url-adresi]

Kontrol edelim.

git remote -v

Simdi değişiklikleri sunucuya kaydedelim.

git push origin master

Bundan sonra bu repoda bir değişiklik yaptığımızda bunu sunucuya da yansıtmak için yukarıdaki push komutunu tekrar kullanabiliriz.

Örneğin yeni bir dosya ekleyerek bu değişimi sunucuya da kaydedelim.

Simdi repo sunucudan klonlandığında bu yeni dosya da dahil olacaktır.

Uzaktaki sunucudan repoyu klonlama

Proje dizinini lokalden silseniz bile, artık sunucudan tekrar klonlayarak en güncel halini alıp kaldığınız yerden üzerinde çalışmaya devam edebilirsiniz.

Github'da bir reponun adresi her zaman sağ taraftaki code butonunda bulunur.

Bu adresi kullanarak repoyu dilediğiniz yere klonlayabilirsiniz.

Repodaki güncellemeleri alma

Bir degişiklik yapıldığında push ile sunucuya güncellemeleri kaydetmemiz gerekir. Aksi halde lokaldeki versiyon sunucudan farklı olacaktır.

Aynı şekilde, sunucuda yapılan değişiklikleri lokale de almayı, yani elimizdeki kopyanın güncel kalmasını istersek bu durumda pull komutu ile güncellemeleri toplu olarak almamız gerekir.

Bu şekilde güncellenen lokal repoya yeni dosyanın eklendiğini görebiliyoruz.

Son söz.

Bu yazıda git ile repo oluşturma, klonlama, sunucuya kaydetme, sunucuya güncelleme yapma ve sunucudan güncellemeleri alma işlemlerini uyguladık. Bu şekilde versiyon kontrolü kullandığınız taktirde bir projeyi tamamen cihazınızdan silseniz bile, hemen ardından uzaktaki sunucudan klonlayarak kaldığınız yerden çalışmaya devam edebilirsiniz.

Yaptığımız örneklerden yola çıkarak siz de gerek Github'dan beğendiğiniz projeleri klonlayarak, gerekse kendi proje repo'larınızı oluşturarak versiyon kontrolünün nimetlerinden yararlanabilirsiniz. git ile versiyon kontrolü konusuna bunu takip eden yazılarda daha detaylı olarak devam edeceğiz. Devam yazılarında görüşmek üzere, hoşçakalın.