versioningBu yazımda git versiyonlama çekirdeğini kullanan onlarca arayüz programından biri ve ticari olmayan uygulamalar için ücretsiz SmartGit aracı ile yazılım yada dosyalarınızı kolayca nasıl versiyonlayabileceğinizi, mevcut yazılımınızın daha önceki versiyonlar ile aralarındaki farklara bakarak hata(bug) tespitlerini nasıl oldukça kolay hale geldiğini, özellikle profesyonel hayatınızda karşılaşacağınız şu üründe/projede ne tür geliştirme/düzeltmeler yapmıştık sorularına bir kaç tıklama ile hızlıca cevap vermek ve zip/rar yöntemi ile versiyonlama yapan arkadaşlar için oldukça faydalı olacağını düşündüğüm bir yazı hazırlamaya çalıştım.

Ayrıca muhtemelen bir çoğunuzun uğradığı ancak aktif bir şekilde kullanmadığı github, bitbucket,… gibi online-depolara örnek uygulama üzerinde kısaca değineceğim.

Git Nedir SmartGit Nedir?

Git bir çekirdek/motor dur. Terminal(linux) yada DOS(windows) ortamlarında çalışmayı sevenler için git-shell komutlarını kullanabilirler ki başlangıçta bu şekilde kullanmanızı, sistemin arka planda nasıl çalıştığını daha iyi kavrayabilmeniz için tavsiye ederim.

SmartGit ve türevleri ise detayları bizden saklayan, git yönetimini kolaylaştıran bir arayüzdür. Basit bir benzetme yapacak olursak git-shell manuel vitesli araç, smartgiti ise otomatik vitesli araç kullanımına benzetebiliriz.

Bir örnek üzerinden konuyu aktarmaya çalışacağım. Öncesinde yukarıda adreslerini verdiğim git ve smartgit kurulumlarını tamamlıyoruz. Smartgit’i çalıştırdığımızda aşağıda birkaç bölgeye ayrılmış programımız açılıyor.

smartgit_aciklama

Örnek bir uygulama ile devam edelim,

  • Herhangi bir dizine demo uygulamamız için klasör açalım. Benim dizinim: /home/namcho/EEM/WebSitem/GitKullanimi/SmartgitAlistirmasi
  • Ardından Smartgit -> Repository->Add or Create (Ctrl + O) ile yeni bir depo oluşturuyoruz ve depo dizini olarak bir önceki adımda belirledigimiz klasörü gösteriyoruz.
    clone_path
  • Initialize komutu ile .git uzantılı klasör(gizli) proje dizinimizde oluşturulur. Bu aşamadan sonra “SmartgitAlistirmasi” klasörü içine yerleştireceğimiz dosyalarımızı yönetebiliriz.

“SmartgitAlistirmasi” klasörü altına Belge1.txt metin dosyasını olusturup içerisine Belge1 oluşturuldu yazıyorum.
belge1_olusturuldu

İlk versiyonumuzu bu haliyle yapalım. Bunun için Belge1.txt dosyamızı seçip takip edilebilir hale getirmek için Stage
komutunu vermemiz gerekmektedir. Ardından State alanı Added şeklinde güncellenecektir.

stage_islemi

İlk kaydımızı yapabiliriz. Bunun için Commit komutu işletilerek yapılan işlem ile ilgili hatırlatıcı not alabileceğimiz bir pencere karşımıza gelecektir.
commit_1Commit butonu ile işlemimizi tamamlıyoruz. Belge2.txt isminde bir metin belgesi daha olusturup içerisine “Belge2 oluşturuldu.” yazıyorum ve Belge1’e yeni bir satır açıp “2. commit deyiz.” ifadesini ekliyorum. Belge2 yeni oluşturulduğu için bu dosyayı takibe almamız gerekiyor bunun için yine Belge2.txt seçip Stage komutunu veriyoruz. Ardından Files bölümünde yer alan bir sonraki kayıta geçmesini istediğimiz dosyaları seçerek(hepsini seçiyorum) 2. kaydımızı yapıyoruz.

commit_2

Şuanda projemize ilk versiyonumuzu vermek istiyorum. Bunun için Branch -> Add Tag(F7) işlemi ile ilk versiyonumuzu oluşturacağımız ekran aşağıdaki gibidir. Tag alanına versiyon numaranızı ve arzu ederseniz versiyon ile ilgili notunuzu Message alanına girebilirsiniz.

tag_1

Son durumda Branches bölgesinde versiyon numaralarımızın bulunduğu Tags alanı gelecektir.

tag_2

Benzer şekilde Belge1 ve Belge2 içerisinde değişiklikler yaparak bir kaç kayıt daha oluşturuyorum. Yapılan tüm değişiklikleri listelemek için Log butonuna basmamız yeterli.

log_1

Commits bölümünde yapılan tüm kayıtlar gözükmektedir. Ayrıca 2 tane versiyonlama işlemi yaptığımızı Tags altında görüyoruz. Commits bölümündeki kayıtlarınızı seçtiğinizde ilgili dosyada yapılan değişiklikleri Changes of DosyaAdi bölgesinde görülmektedir. Yeşil renk eklenen, pembe renk ise çıkarılan ifadeleri belirtmektedir. Ayrıca her bir kayıta yada versiyon etiketine çift tıklayarak ilgili kayıttaki proje durumuna dönebilirsiniz. Örneğin “Belge1 olusturuldu.” yorumunun yapıldığı ilk kaydımıza gittiğimizde

travel_1

Belge2.txt metin dosyasının proje klasörü altından kalktığını göreceksiniz. Tekrar projenizin güncel haline dönmek için master dalına tıklamanız yeterli. Şimdi bu oluşturduğumuz projemizi github.com gönderelim. Bunun için github da üyeliğinizin olması gerekmektedir.

github.com da SmartGitAlistirmasi isimli yeni bir depo oluşturuyoruz.

github_1

Ekran görüntüsündeki seçili linki kopyalıyoruz ve smartgit ekranına geri dönüp üst menü çubuğunda yer alan Remote->Add ile açılan pencerede URL alanına https://github.com/namcho/SmartGitAlistirmasi.git linkini yapıştırıyorum. Burada namcho yazılı alana sizin takma adınız gelecektir.

Lokalimizde duran(Bilgisayarımızda) SmartGitAlistirmasi projesini github.com’a ekledik ancak henüz yapmış olduğumuz işlemleri online-depomuza göndermedik. Bunun için master dalına sağ tıklayıp push komutunu vermemiz yeterli. Benzer şekilde eğer Tag’larınızıda göndermek isterseniz bunlarıda ayrı ayrı pushlamanız gerekmektedir.

github daki projenin son hali için: https://github.com/namcho/SmartGitAlistirmasi

Commitler: https://github.com/namcho/SmartGitAlistirmasi/commits/master

Versiyonlar: https://github.com/namcho/SmartGitAlistirmasi/releases

Son bir not, birden fazla bilgisayar ile çalışıyosanız github yada bitbucket daki güncel projenizi diğer bilgisayarınıza/larınıza Pull komutuyla klonlayabilirsiniz. Bu işlem otomatik olarak lokalinizdeki eski dosyalarınızı güncelleyecektir eğer ilk kez pull işlemi yapıyosanız proje dosyasınızın bir kopyası bilgisayarınızda oluşturulacaktır.

Bir örnekte, önceden yapmış olduğum ve bitbucket’da sakladığım bir bluetooth çalışmamdan olsun: Yapılan bir commit işleminin ardından hangi dosyalara kaç satırlık ekleme ve çıkartma yapıldığı Files changed altında şekildeki gibidir.

bitbucket_2

Alttaki ekran görüntüsünde ise  Hc05Stm.cpp (C++ kaynak dosyası)dosyasındaki değişimler gösterilmektedir. Görüldüğü üzere pembe yani başında (-) olanlar mevcut commit ile birlikte koddan çıkartılmış parçaları, açık yeşil yani satır başında (+) olanlar ise mevcut commit ile birlikte koda eklenmiş olan parçaları belirtmektedir.
bitbucket_1

Aşağıdaki görüntüde ise proje aşamaları gösterilmektedir. Bunlar yapmış olduğumuz commit işlemleridir. Projede ne zaman, ne yaptığımızı izleyebilmek için bu ekranı kullanabiliriz.

bitbucket_commits

Bol resimli bir yazı oldu umarım faydalı olmuştur. Bu araç tam benlikmiş diyen ve kullanmaya başlayacaklar için “workflows” anahtar kelimesi ile biraz araştırma yapmanızı tavsiye ederim.

Çalışmalarınızda başarılar dilerim.

Yazılım Takibi/Versiyonlama – Git Kullanımı
Tagged on:                     

Leave a Reply