Git 101 -1- Versiyon Kontrol Sistemi

Git ile ilgili öğrendiklerimi paylaştığım bu tecrübe yazısından herkese Merhaba, Uzun bir yazı dizisi olması dileğiyle.

Versiyon Kontrol Sistemi Nedir ?

Dosyaların kayıt altına alınmış olduğu sisteme versiyon kontrolü diyebiliriz.Yazdığımız kodların güvenilir bir şekilde saklanmasını, versiyonların takip edilmesini, kodun gelişimine katkıda bulunanların ve kodun kontrol altında tutulmasını sağlamak amacıyla versiyon kontrol sistemleri ortaya çıkmıştır.

Versiyon kontrolü kesinlikle bir programlama dili, framework, işletim sistemi gibi düşünülmemelidir. Çünkü versiyon kontrolü ile,

  • Mimari tasarım amaçlı projelerinizde, mobil projelerinizde yani herhangi bir projenizde kaynak kodunuz için kullanabilirsiniz.
  • Kesinlikle platformdan bağımsızdır diyebiliriz. Yani banane arkadaş ne kullanıyorsanız kullanın benim sorunum değil der.
  • Birden fazla yazılımcının bir proje üzerinde eşzamanlı olarak çalışmasına olanak sağlar.
  • Projenin eski kod kayıtlarına ulaşarak kontroller sağlamamıza imkan sunar.

İşte biz bu ve daha fazla birlikte çalışma tabanlı, dosya kontrollerinde ve projemizin yönetiminde muhteşem işler sunan elemana versiyon kontrol sistemleri diyoruz.

Şimdi şöyle düşünelim. Bir projeye başladık ve bu projeyle ilgili her değişikliği güncellemeyi yedekleyip ilerliyoruz. Peki bir süre sonra ne olacak ? Bilgisayarın bozulması bir sorun, ekip’tekilerin yaptığı güncellemeleri birleştirmek bir sorun yani çokca sorun mevcut. Bu tarz sorunlarıda versiyon kontrol sistemleri sayesinde rahatça atlıyoruz. Gelin daha detaya inelim :

Versiyon Kontrol Sisteminin Faydaları

Önce Sorunlar

Şimdi bir yazılım firmasında yazılımcı olun. 100 kişilik bir ekip ve git olmadan bir projenin kontrolünü sağlamaya çalışın. Nasıl Yapardınız ? İşte ana sorun burada başlıyor. Mesela en güncel halini nasıl ayırt ederdiniz, değişiklikler olduğunu nasıl anlardınız ya da neyin niye değiştiğini nasıl anlarsınız ?

Şimdi kaynak kodu bilgisayarında saklayacaksın üstüne yedeklemen de gerekli. Yada paylaşımlı klasör yapısı kullanıp takip edecekseniz.

100 kişilik ekip ile sürekli proje üzerinde güncelleme yaptınız ve en son neyin değiştiğini nasıl bileceksiniz ? Bu da sizin için büyük bir sorundur.

Şimdi bir gelişme oldu ve projeye örneğin ek bir alan eklediniz. Ve sonra patronunuz bu gelişmenin saçma olduğuna karar verdi. Tek tek projenin nereden değiştiğini vs bulmak hep zordur.

Projenizin güncel halini ve eski sürümlerini kontrol altına almanız ve takip edebilmenizde sizin için sorundur.

Ne sorunlu işmiş bu arkadaş !!!

Peki Versiyon kontrolü nasıl ve nelerin üstesinden geliyor

İsteyen tüm yazılımcılar proje üzerinde rahat bir şekilde güncelleme yapabilir. Siz kimin nereyi güncellediğini de bileceksiniz. Bütün değişiklikleri sağlıklı bir biçimde merge edebilir hatta sağlam bir commit sistemi ile nelerin neden değiştiğini de rahatça gözlemleyebilirsiniz. (Şimdiden kavramlara takılmayın öğreneceksiniz. )

İşte 2 sorunda ki en güzel çözüm buradadır. Siz projenin ismi ve versiyonu ile neyin ne olduğunu yazmak zorunda değilsiniz. Git sisteminde tek bir versiyon ve ismi vardır. Düşünsenize sürekli kod değişiyor ve siz neyin değiştiğini çok rahat bir şekilde gözlemleyebiliyorsunuz. Yazılımcı için ne kadar güzel bir rahatlık.

3 maddede dediğim gibi artık rahat bir şekilde kontrol altına alabildiğiniz proje de çok rahat bir şekilde geriye dönüştürebilirsiniz.

En çok kullanılan versiyon kontrol sistemleri –>  CVS, SVN ve GIT. Açıkcası CVS Hakkında pek bilgim yok.

Güzel bir şekilde ( http://www.foch.com.tr/versiyon-kontrol-git-svn-cvs.html ) adresi açıklamıştır.

https://svnvsgit.com/ –> Kesinlikle burayı da okuyabilirsiniz. Bu kısım için özellikle git’i diğerlerinden ayıran bir teknik yazı yazmayı düşünüyorum. O zamana kadar Sağlıcakla Kalın !!

 

Şimdi gelelim dersimizin amacına. Burada daha çok git ile ilgileneceğim. Aşağıdaki kaynaklar size yardımcı olabileceğini düşünüyorum. Tabi yığınla internet’te de kaynaklar bulunmaktadır.Sizinde olmasını istediğiniz kaynak varsa yorum yazmanız yeterli. Ben gördüğüm an eklerim.

Git ile ilgili özellike 101 pdf’i var. (https://www.gitbook.com/book/aliozgur/git101/details) çok işimi gördü.

Ve tabiki git PRO (https://git-scm.com/book/tr/v2) işlerinizi görür.

Kaynakça: https://biz30.timedoctor.com/git-mecurial-and-cvs-comparison-of-svn-software/

https://stackoverflow.com/questions/802573/difference-between-git-and-cvs

http://www.kurumsaljava.com/2009/04/07/subversion-ile-versiyon-kontrolu/ –> Özcan Hocada subversion

https://www.youtube.com/watch?v=rWG70T7fePg –> Videolu eğitim (Giriş için güzeldir.)

Yazar: umiitkose

Bir cevap yazın

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