9 Temmuz 2011 Cumartesi

Pratik git kullanımı notları

Uzun süredir yazdığım scriptler için bir sürüm takip yazılımı kullanmam gerektiğinin farkındayım. Bu nedenle ufak bir araştırmadan sonra git kullanmam gerektiğini gördüm. Git, sürüm kontrol yazılımlarının en iyisiymiş. İnternette bulduğum kaynakların birçoğu da bunu doğrulamakta. Tutorial tadında notlarımı paylaşmak istiyorum.

Kurulum basit :)
#>sudo apt-get install git-core git-gui git-doc

İlk önce git sistemine kendimizi tanıtalım.
#>git config --global user.name "Volkan Oransoy"
#>git config --global user.email "voransoy[]gmail.com"


Basitçe bir django projemiz için bir git senaryosu yapalım. Önce projemizi oluşturalım.
#>django-admin.py startproject tutorial



Bu bize django projemiz için bir klasör oluşturacak.
#>cd tutorial


Şu anda proje klasörümüzün durumu bu

. .. __init__.py manage.py settings.py urls.py


Kütüğümizi oluşturalım.
#>git init

Klasörümüz bu hali aldı.
. .. .git __init__.py manage.py settings.py urls.py

Git kütüğümüzün durumunu görelim.
#> git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add ..." to include in what will be committed)
#
# __init__.py
# manage.py
# settings.py
# urls.py
nothing added to commit but untracked files present (use "git add" to track)


Git kütüğümüz var ancak içi boş. Master, yani ana daldayız. Git sürüm sistemi içinde farklı kollar ile tüm projenin farklı fraksiyonlarını oluşturmak mümkün. Bu şekilde kök koda dokunmadan deneyler yapabilir, başarılı olduğunda ana dala entegre edebiliriz. Şimdi eklenecek dosyaları seçelim. Komutunm sonundaki nokta, tüm dosyalar anlamında. Fakat teker teker dosya adı da yazabiliriz.
#>git add .

Dosyaları seçtik ve ilk kütük kaydını girelim.
#>git commit -m "İlk kayıt"

Şimdi duruma göz atalım.
#>git status
# On branch master
nothing to commit (working directory clean)


Görüldüğü üzere git tarafından izlenen dosyalarda bir değişiklik yok. Burada yeri gelmişken belirtelim. Git'in en büyük özelliği dosyaları değil, tüm dosyalardaki değişiklikleri takip etmesi. Farklılığı görmek için ufak bir değişiklik yapalım. Settings.py altına bir comment girelim.
#>echo "#Test comment" >> settings.py

Bakalım git bu işe ne diyecek?
#>git status
# On branch master
# Changes not staged for commit:
# (use "git add ..." to update what will be committed)
# (use "git checkout -- ..." to discard changes in working directory)
#
# modified: settings.py
#
no changes added to commit (use "git add" and/or "git commit -a")


Bu değişikliği git kütüğüne girmekiçin ne yapamamız gerektiğini biliyoruz. Önce seçeceğim ardından ekleyeceğim. Değişen tüm dosyaları seçip kütüğe girmek için.
#>git commit -am "settng.py değişti"

Senaryomuzu genişletelim. Diyelim ki olgun bir konuma geldi yazılımımız ama riskli birşey denemek istiyorum. Bu kodun bozulmasını da istemiyorum. O zaman yeni bir dal açalım ve bu dala geçelim.
#>git branch testbranch
#>git checkout testbranch


Bundan sonra yapacağımız değişiklikler bu dala kaydedilecek. Test için django projemize bir uygulmama oluşturalım.
#>python manage.py startapp testapp

Oluşan testapp klasörünü yeni oluşturulan dalımıza kaydedelim.
#>git add testapp
#>git commit -am "testapp created"


İşte şimdi git neden lazım görelim. Diyelim ki testapp ta bir sorun var ve ilk başladığımız hali incelememiz lazım. Master'a geri dönelim.
#>git checkout master
#>ls -a
. .. .git __init__.py __init__.pyc manage.py settings.py settings.pyc urls.py


İşte testbranch tan hemen önceki duruma geri geldik. Ya da testapp çok başarılı oldu ve artık master olarak bu dalı kullanmak istiyoruz.
#>git merge testbranch

Artık master ve testbranch aynı durumda. Testbranch'a ihtiyaç olmadığına göre silebiliriz.
#>git branch -d testbranch

Bakalım şu ana kadar neler yapmışız.

#>git log
commit 98a97034f3412150253d75efbb62911005191952
Author: Volkan Oransoy
Date: Sat Jul 9 23:09:30 2011 +0300

testapp created

commit 03d59c3e3366d35ee0daed16e2b8ac13a15dbc04
Author: Volkan Oransoy
Date: Sat Jul 9 22:58:47 2011 +0300

settng.py değişti

commit d9445c37a8a8fdb8eeaaf0018cddade53b79c4da
Author: Volkan Oransoy
Date: Sat Jul 9 22:52:03 2011 +0300

İlk kayıt



Şimdilik bu kadar. O zaman kadar bu siteler göz atabilrisiniz.
http://gitref.org/basic/
http://gitcasts.com/

0 yorum:

Yorum Gönder