Hiç bilmeyenler için Versiyon Kontrol Sistemi
Hiç bilmeyenler için Versiyon Kontrol Sistemi
Versiyon kontrol sistemleri kısa ve anlaşılır şekilde anlatmaya çalışacağım.
Versiyon kontrol sistemi nedir ?
Birçok belgeden oluşan, içerikleri, sayıları, ve birbirlerine olan ilişkileri sürekli değiştirilen, gene de bir arada gelişen bir bütün oluşturan belge kümesinin zaman içindeki durumlarının idaresini konu edinen yaklaşım, ve bilgisayar ortamındaki belge kümelerinin bu yaklaşımla değişiklik yönetimi işlemlerini kolaylaştıran yazılıma verilen isimdir.
Neredeyse tüm dosyalar için kullanılabilir.
Versiyon kontrol sistemi ne işe yarar ?
1.)Dosyaların ya da bütün projenin geçmişteki belirli bir sürümüne erişmenizi sağlar.
2.)Zaman içinde yapılan değişiklikleri karşılaştırmanızı sağlar.(1 ay önce ne eklemiş ne çıkarmışım kontrol etmemiz gibi. 2 hafta önce ki proje ile şimdiki proje arasında neler var. ne kadar ilerlemişim gibi bilgilere erişmemize yardımcı olur.)
3.)Birden fazla kullancının aynı anda, birbirinin değişikliklerini ezmeden, bir proje üzerinde çalışabilmesini sağlar.
4.)Bilgisayarınıza bişey olsa bile (bozulma , çalınma vs.) projenize ulaşmanıza yardımcı olur.(Bir yazı yazıyorsunuz farz edilim. Son kısmına geldiğinizi düşünelim yanlışlıkla bir bölümünü silebilirsiniz. Sildiğiniz bu bölüme kolayca geri getirmenizi sağlayabilirsiniz.)(Yedekleme neden yapmıyorum diye bilirsiniz ? Cevap için okuma devam ediniz.)
5.)Projeye kimin ne kadar katkı sağladığını görmenize yardımcı olur.(5 kişi bir proje geliştirdiğinizi düşünelim. Kimin ne kadar katkı sağladığın kolayca erişebilirsiniz.)
Versiyon kontrol çeşitleri nelerdir?
Dağıtık model
- Aegis
- Bazaar
Merkezi model
- Vesta
Yukarıdaki versiyon kontrol sistemlerinden Git i kullanıyorum. Kullanımla ilgili küçük açıklamalar yapacağım.
Git Versiyon kontrol sistemi
2005 yılında Linux çekirdeğini geliştiren toplulukla BitKeeneri geliştiren toplluluk arasında sorun oluşunca , şirket ücretsiz olarak yayınlamayı bıraktı.
Linux un gelişmesinde büyük katkı ssağlayan Linus Torvalds kendi versiyon kontrol sistemini yazmaya karar verir. Projeyi kısa bir sürede bitirir.Git halen Linux çekirdeğini ayakta tutmaktadır.
Git in hedefleri nelerdir ?
- Hız
- Basit tasarım
- Çizgisel olmayan geliştirim için güçlü destek (binlerce paralel dal (branch))
- Bütünüyle dağıtık olma
- Linux çekirdeği gibi büyük projelerle verimli biçimde başa çıkabilme (hız ve veri boyutu)
Git, veriyi böyle yorumlayıp depolamaz. Bunun yerine, Git, veriyi, bir mini dosya sisteminin bellek kopyaları olarak yorumlar. Her kayıt işleminde (commit), ya da projenizin konumunu her kaydedişinizde, Git o anda dosyalarınızın nasıl göründüğünün bir fotoğrafını çekip o bellek kopyasına bir referansı depolar. Verimli olabilmek için, değişmeyen dosyaları yeniden depolamaz, yalnızca halihazırda depolanmış olan bir önceki özdeş kopyaya bir bağlantı kurar.
Git işleyişi temelde şöyledir:
- Çalışma klasörünüzdeki dosyalar üzerinde değişiklik yaparsınız.
- Dosyaları bellek kopyalarını hazırlık alanına ekleyerek hazırlarsınız.
- Dosyaların hazırlık alanındaki hallerini alıp oradaki bellek kopyasını kalıcı olarak Git klasörüne depolayan bir kayıt işlemi yaparsınız.
Git i yüklemek için web adresi: http://git-scm.com/download
Örnek bir proje ile adım adım ilerleyelim.
1.)Git i indirim ve bir proje oluşturun.Aşağıdaki komutu kullanınız ve bilgisayarınız sizi tanısın.
git config --global user.name "isim"
git config --global user.email "email@email.com"
2.) Bilgisayarınız da bir yerel depo oluşturunuz.
git init
3.) Bütün değişikleri ekleyelim.
git add -A
4.)Bitirme projesi için versiyon kontrol sistemi kullanığınız varsayalım.İlk yorum aşağıdaki gibi olsun.
git commit -m "bitirme projesine başladık."
4.)A sitesinden kaynak araştırması yapıyorsunuz. Kaynakları oluşturduğunuz projenin içinde bir klasöre koydunuz ve bitirme ödevinize bişeyler eklediniz.
git add -A
git commit -m "kaynak araştırması yapılda ve projeye B eklendi."
5.) Ne gibi eklemeler yaptığınızı görmek için , kimin ne eklediğini görmek vs.
git log
Bu örnekler daha da çoğaltabiliriz.
Bu projeleri bilgisarımızda saklamak pek de güvenli değildir.Bilgisayarımızın başına her hangi bir şey gelebilir.
Bunun için bir web depolama servisi kullanmalıyız.
Web Depolama Servisleri
● GitHub
● GitLab
● Bitbucket
● Assembla
● Beanstalk
● CloudForge
● Perforce
● Codebase
Yukarıdakilerden GitHub’tan bahsedeceğim.
Github nedir ?
● Sürüm kontrol sistemi kullanan yazılım geliştirme projeleri için web tabanlı bir depolama servisidir.
● GitHub özel depolar için ücretli üyelik seçenekleri sunarken, açık kaynaklı projeler için ücretsizdir.(Öğrenci mail adresinizi ekler iseniz sizde ücretsiz ve sınırsız depolar oluşturabilirsiniz.)Ayrıca öğrenci mail inizle kayıt yaptırdığınızda çeşitli avantajlar kazanabilirsiniz. Avantajlar listesine aşağıdaki linkten ulaşabilirsiniz.
The GitHub student developer pack is all you need to learn how to code. Get your pack now.education.github.com
Sizde GitHub kullanma istiyorsanız.GitHuba 8 adımda git ile proje nasıl yüklenir yazımı aşağıdaki linkten okuyabilrsiniz.
1.Github’a kayıt yaptırın ve yeni bir repository oluşturun.medium.com
Git ile alakalı daha çok kaynak için şuraya bakabilirsiniz.