Git Başlangıç Rehberi

Eğer GNU/Linux kullanıcıysanız bir şekilde Git adını görmüş veya duymuşsunuzdur, mesela yeni bir programı indirirken veya CVS ile Subversion gibi sürüm kontrol sistemlerini incelerken. Git değişiklik kontrol sistemidir. Linux çekirdeğinin ünlü geliştiricisi Linus Torvalds tarafından var olan çözümlerle yaşadığı tatminsizlik nedeniyle geliştirilmiştir. Tasarımdaki ana odak hız veya daha belirgin söyleyeceksek, verimliliktir. Git varolan sistemlerin bir çok eksikliğini adresliyor ve hepsini kısa bir zamanda yapıyor.

Git ne yapar

Farzedelim ki bir müşteri için bir web sitesi yaratmakla uğraşıyorsunuz. Onlar ne istediklerini söylüyor, siz tasarlıyorsunuz, gözden geçiriyorlar ve değişiklikler, ayıklamalar, tekrarlar yapıyorlar. Müşteriden gelen her bir değişiklik için, site değişiyor ve büyüyor. Daha sonra müşteri “geçen eylüldeki halini daha çok sevmiştim” diyor. Normal koşullarda problem yaşarsınız. O zamana ait olan tüm dosyaları ve veriye sahip olmayabilirsiniz, ve kodunuz geri alamayacağınız kadar çok değişmiş, işinizi zorlaştıran bir durumda olabilir.

Değişiklik kontrol sisteminin amacı yukarıdaki paragraftaki neredeyse tüm problemleri çözmektir. Kodunuzdaki ve dosyalarınızdaki her değişikliği izleyebilir, istediğiniz bir tarihe, noktaya geri dönebilirsiniz.

Git nasıl çalışır?

Her bir proje dizininin kendisi bir Git deposudur. Projenizin tüm dosyalarını bu dizinde saklarsınız ve belli aralıklarla Git'e dosyaların o anki durumlarını gönderip bilgisini güncellemesini istersiniz. Bu Git'e durum saklama sürecine teslim etmek, sunmak (commit) adı verilir. Her yeni sürüm sunduğunuzda (bunu sık sık yapmanız iyidir) Git izlemekle yükümlü kılındığı dosyalara bakarak bu dosyalarla elindeki sürümleri arasındaki farkları (ve yeni dosyaları) .git dizinine saklar. Her bir sunma projenizin geliştirilmesi açısından bir yeni kayıt noktası olur.

İsteğe bağlı olarak, yerel git deponuzu dışarıdaki bir sunucuya, github.com gibi, koyabilirsiniz. Bu bir projeye birden fazla kişinin katkı vermesini sağlar. Bu kişiler yerel depoların sık, hızlı kayıtlar yapıp, daha sonra tüm bu yerel kayıtları çevrimiçi depoya tek bir güncelleme olarak sunarlar. Bu git diğer sürüm kontrol sistemlerine göre daha hızlı yapan özelliklerden biridir: her yaptığınız değişiklik için yükleme yapmak üzere band genişliğini ve zamanı boş yere kullanmadan yerel deponuza sık kayıtlar yapabilirsiniz.

Git kurulumu

Çoğu GNU/Linux kullanıcısı Git'e (paket ismi olarak git-core) kendi dağıtımlarının standart yazılım depolarından ulaşabilir. Ubuntu kullanıcıları bağlantıya tıklayarak veya uçbirimde aşağıdaki komutla kurabilirler (ayrıca yazılım paket yönetisinde git-core paketini arayıp kurarak):

sudo apt-get install git-core

Eğer başka bir platform veya dağıtım kullanıyorsanız, bu tarz yazılım depoları kullanamıyorsanız paketleri şuradan elle indirip kurabilirsiniz. Her ne kadar anlatacaklarımız GNU/Linux için olsa da, Git tarafından desteklenen tüm platformlar için aynıdır.

Git kullanımı

Yerel Git deposu yaratma işlemi hızlı ve kolaydır. Projeniz için kullanmak üzere bir dizin yaratın ve bu dizin içerisinde bir uçbirim açın. Komut satırında aşağıdaki komutu kullanarak depoyu başlatın:

git init

Bu komut depo bilgisini saklayan .git dizinini yaratacaktır. Daha sonra, bazı dosyalar eklemek isteyebilirsiniz. Basit bir OKUBENİ dosyası yaratarak başlayacağız, dosyayı izlenecek dosyalar listesine ekleyeceğiz, daha sonra dosyayı depoya sunacağız.

#Yeni bir dosya yaratalim
echo "TODO: Belgeleri hazırla" > OKUBENI.txt
#Simdi Git'e bu dosyadaki degisiklikleri izlemesini soyleyelim
#Bu her dosya icin sadece bir kere yapilmalidir
#(bu konudan ileride tekrar bahsedecegiz)
git add README.txt
#Simdi durumu git deposuna kaydedelim
git commit README.txt

Karşınıza bir metin düzenleyici çıkacaktır (hangi metin düzenleyicinin çıkacağı kullandığını dağıtım ve yapılandırmaya göre farklılık gösterecektir), bu metin düzenleyicide depoya sunma işleminiz hakkında notlar, yorumlar girmeniz gerekmektedir. Bunlar genellikle bir önceki depoya kayıt işleminden beri yapılan değişikliklerin bir özetidir. Kaydedip metin düzenleyiciden çıktığınızda depoya sunma, kayıt işlemi başarıyla tamamlanmış olacaktır.

Esas olarak ilgili dosyanın şu anki halinin bir örneğini yaratmış olduk. Daha sonra yapılacak değişikliker (depoya kaydettiğimiz) bu örneğin üzerine kaydedilecektir.

Her dosyayı yukarıdaki örnekte olduğu gibi gitin izlemesi için tek tek eklemek usandırıcı olabilir. Buna çare olarak, dizindeki tüm dosyaları aşağıdaki komutla izlemeye aldırabilirsiniz:

#sondaki "." isaretine dikkat!
git add .

Ve tüm bilinen, değiştirilen dosyaları aşağıdaki komutla depoya tek seferde sunabilirsiniz:

git commit -a

Bazı işe yarar diğer git komutları şunları içerir:

#Varolan bir deponun tam bir kopyasini olusturun (ornegin bir yazilim projesinin #websitesinden indirilebilir)
git clone (URL, örnek: git://github.com/github/linux-2.6.git)
#Bir dosyayi tasiyin/ismini degistirin. Bu sizi dosyayi depodan silme ve tekrar ekleme is #yukunden kurtarir
git mv (kaynak) (hedef)
#Bir dosyayi silip Git deposundan kaldirin
git rm (hedef)
#Depodaki dallari gormek icin
git branch
#Git agacinda yeni bir dal yaratin
git branch (yeni dal ismi, örnek: "experimental")
#Bir daldan diğerine atlayin, degistirin
git checkout (dal adı, örnek: "experimental")
#Dali guncel dalla birlestirin
git merge (dal)

Bu elbette git ile yapabileceklerinizin sadece başlangıcıdır. Eğer yararlı bulursanız size ısrarla resmi Git Topluluk Kitabını öneririm, bu kitapla bu zeki yazılım parçasını nasıl kullanabileceğinize dair daha derin bilgiler alabilirsiniz.

Not: Git Başlangıç Rehberi'nden çevrilmiştir.

Ek Bağlantılar
Introduction to Git
Top 10 Git Tutorials for Beginners

Google Python Dersi

Google tarafından programlama bilgisine sahip olup Python öğrenmek isteyenler için hazırlanmış (İngilizce) ders: http://code.google.com/edu/languages/google-python-class/