Uygulama

Dağıtık Versiyon Kontrol Sistemi ve GIT

Birlikte çalışabilirlik için en önemli kural bir versiyon kontrol sistemi kullanmaktır. Nedir versiyon kontrol sistemi ve neye yarar. Genelde yazılımcıların kullandığı bu teknoloji büyük ve kapsamlı projeler gerçekleştirmek için olmazsa olmaz bir araçtır. Bir dosya üzerinde birden fazla kişinin çalıştığını düşünelim. İki taraf da dosya üzerinde değişiklik yapmış olsun. Dosyayı son kaydedenin diğerinin üzerine yazması büyük kayıp olur ve karışıklığa neden olur. Yapılan iki değişikliğin de birleştirilmesi gerekir. Versiyon kontrol sistemlerinin birinci işe yaradığı yer burasıdır. Bir dosya ya da proje üzerinde birden çok kişi çalışabilir ve yapılan tüm değişiklikler birleştirilir. Bir diğer can alıcı özellik Zaman Kapsülü özelliğidir. Dosya üzerinde yapılan değişiklikleri tarih kronolojisi ile takip etmek mümkün olur. İstenilen bir anda geriye dönmek ve oradan devam etmek mümkündür. Dağıtık mimarili versiyon kontrol sistemlerinde çalışılan projenin tam bir kopyası her katılımcının elinde olur. Merkezi bir servera herkes yaptığı değişiklikleri gönderir ve böylece tüm katılımcıların katkısı birleştirilir. Kimin ne katkı yaptığı görülebilir (Gnexlab’ta tam da aradığımız şey). Bunun dışında riskli bir çalışma yaptığınızı düşünüyorsanız dosyaları ayrı bir dala taşıyarak master dalı bozmadan yan dallarda değişik çalışmalar yürütebilirsiniz. Gnexlab’ta beraber bir takım işler gerçekleştireceksek, herkesin versiyon kontrol sistemine hakim olması gerekli. Biz burada en yagın versiyon kontrol sistemi olan GIT kullanacağız. GIT linux’u geliştiren Linus Torvalds ‘ın bir eseridir. Linux işletim sistemini geliştirirken oluşturduğu bu versiyon kontrol sisteminden bugün bütün dünya yararlanıyor.

GIT indirmek için buraya bakabilirsiniz. Ayrıca detaylarını öğrenmek için dokumantasyona bakabilirsiniz.

Ben temel kullanımı ve bazı yaygın komutlara burada değinerek bu teknolojinin neye yaradığından bahsedeceğim.

GIT için GUI yazılımlar olsa da ben size command line kullanmanızı öneriyorum. Bu yüzden GIT’i command line indirip hemen başlayalım.

GIT kurulduktan sonra komut penceresinden

$ git help

yazarak yardıma ulaşabilirsiniz. Ayrıca komut ile ilgili detay istiyorsanız

$ git help komut

işinize yarayacaktır.

Şimdi mkdir ile bir dizin yaratıp içine girelim

$ mkdir store

$ cd store

şimdi store dizini içindeyiz burada

$ git init

komutu ile boş dizinde git versiyon kontrol sistemini oluşturalım. GIT kendisi bir takım gizli dizinler oluşturarak tüm işleri halledecek. Sizin bu dizinlerle bir işiniz olmayacak kurcalamamakta fayda var 🙂

Şimdi sizin local makinanızda bir repositoryniz var. Yani bir depolama alanınız. Bir text dosyası oluşturup (readme.txt) bu alana kopyalayın. Daha sonra

$ git status

komutu ile her zaman bir önceki adıma göre nelerin değiştiğini öğrenebilirsiniz. Bu aşamada  bu komutu kullanırsak yeni eklediğimiz dosyanın untracked olduğunu yani takip edilmediğini görürüz. Bu dosyanın takip edilmesini ve versiyon kontrol sistemine dahil olmasını istiyorsak

$ git add readme.txt

bu komut ile readme dosyasını staging area denen bölgeye almış oluruz. Kafalar hiç karışmasın bu dosyanın bir resminin çekildiğini düşünebilirsiniz. şimdi bu daosyanın zaman kapsülünde bir yer edinmesi ve ana dala (master branch) dahil olması için aşağıdaki komutu kullanalım.

$ git commit -m ‘commit açıklaması cok önemlidir’

bu komut ile staging alanındaki dosya master bracha geçmiş ve herkes tarafından ulaşılabilir olmuştur.

Yapılan değişiklikleri

$ git log

komutu ile görebiliriz.

Buraya kadar olan işlemler hep lokal bilgisayarımızda gerçekleşti. Şimdi merkezi bir server ile çalışıp dosyalarımızı local repository den internet üstünde bir repository ye alalım. Böylece diğer katılımcılarında bu dosyalara erişimini sağlayalım. En yaygın kullanılan repository github dır. Burası açık kaynak yazılımlar için ücretsiz kapalı kaynak kullanacaksanız ücretli bir sitedir.  Bir account oluşturup new repository ile kendinize bir proje açın. Burada dikkat edilecek kısım içeride dosya olmayan bir repository oluşturmak bu yüzden readme file istermisiniz kısmını işaretlemeyin.

 

 Screen Shot 2014-10-06 at 11.02.34 PM

Bundan sonra bu repositoryinin URL sini kopyalayın. Ve aşağıdaki kodları sıra ile makinanızda çalıştırın.

$ git remote add origin <copyaladığınız url>

$ git remote -v

$ git push origin master

Size username pasword soracak ve sonrada lokaldeki dosyalarınızın bir kopyasını github üzerine alacaktır. Bundan sonra diğer katılımcılar kendi local repositorilerine bu doayaları çekip üzerinde çalışıp tekrar commit ederek katkılarını birleştireceklerdir. Uzak repository den dosya çekmek için pull komutunu kullanabilirsiniz.

$ git pull

Hepsi tabiki bukadar değil GIT de daha derinlere dalmak mümkün şimdilik bunları denemeler yaparak sindirelim.