Git sürüm kontrol (versiyon kontrol) ve kaynak kod yönetim sistemidir. Versiyon kontrol nedir; yapmış olduğumuz projede adım adım geliştirmeler yaparız. Projenin son halini de bozmamak için kendimizce kopyalar alırız. Kendimizce çeşitli klasörleme sistemleri oluştururuz. xx_v1, xx_v2 yada proje_adi_05_02_14 gibi . Proje büyüdükçe geliştirmeler arttıkça dağınık ve içinden çıkılmaz bir hal alıyor. İşte versiyonlama sistemi bizi bu işkenceden kurtarır. Yaptığımız geliştirmeleri, yaptığımız yorumlarla zamanlarıyla birlikte saklar böylece tek çatıda karmaşadan uzak, içinde boğulmadan geliştirmemizi sağlar.
Bu sayede artık ne zaman hangi değişiklikleri yapmıştık diye düşünmeden projenin tüm gelişim serisini takip etmiş oluruz.
“Eyvah son yaptığım değişiklikler projeyi uçurdu ne yapacağım nasıl geri alacağım” diye haykırışlara çare olur, şimdilik bu kadarı yeterli sanırım:)
Git Diğer Özellikler
Aynı anda birlikte çalışma imkanı sağlar
Git en büyük özelliğinden birisi ise birden çok kişi ile birlikte çalışmasını sağlar. Hemde bunu tek bir merkeze sürekli bağlı kalmadan dağıtık offline şekilde gerçekleştirebiliyorsunuz. Çalışma dosyalarını her bir kullanıcı kendi local’ ine çekerek(clone – kopyalama işlemi gerçekleştirilir) orada kendi geliştirmelerini yaparlar. Bu İnternete sürekli bağlı kalmadan çalışabilmeyi sağlar. Yani siz yolda, evde çay bahçesinde de geliştirmelerinizi yapabilir daha sonra uzak merkeze(depoya) gönderebilirsiniz.(Gönderme işlemi pull, pull etmek)
Proje güvenliliği
Projede çalışan kullanıcıların her birinde projenin kopyaları olduğu için güvenlidir. Tabi projenin güncel hallerini kullanıcılarınızın takip etmesi suretiyle:) Her kullanıcıda projenin kopyaları bulunduğu için sizin bilgisayarınız havaya da uçsa repoda gitse projeniz hala yaşıyor olacaktır.
Projeyi dallara (branch) parçalara ayırarak çalışma
Farklı kaynaklardan dallardan hızlı, kolay birleştirme
Kaynak depoları disk üzerinde çok az yer kaplar verimlilik sağlar.
Açık kaynak dünyası tarafından popüler. Birçok kullanıcı tarafından kullanılmakta.
Projenizi açık kaynağa sunarak daha hızlı ve etkili gelişmesini sağlayıp inceleyebileceğiniz gibi diğer açık kaynak geliştirmelere de katılabilir git üzerinden dosya alışverişleri sağlayabilirsiniz.
Github kullanımı, Github ile ekip ve proje yönetimi.” Social Coding” Platformu. Git ile oluşturduğunuz kod depolarını bulutta saklamanızı sağlar. Bu alanda Github dışında Bitbucket gibi alternatiflerde vardır.
Projenin adım adım gelişim süreci takip edilmiş olunur. Kimlerin hangi geliştirmeler yaptıkları zaman serisi halinde bulunur.
Şimdilik bu kadar bilgi yeterli sanırım, kapsamlı ve geniş bir konudur.Özellikle Github hakkında ayrı yazılar yazılabilir, araştırmanızı ve kullanmanızı öneririm.
Versiyon Kontrol Sistemleri
Git
Subversion
Microsoft Team Foundation Server
Bazaar
CVS (Concurrent Versions System)
Git Nasıl Kurulur
Linux Git Kurulumu:
Oldukça basit Terminal de şu kod satırını çalıştırıyoruz:
$ apt-get install git-core
Farklı linux sürümlerinde kurulum değişebilir, kullandığınız sürüme göre kontrol edebilirsiniz.
Windows Git Kurulumu:
Windows için Git versiyonunu indirmemiz gerekiyor. Bu adresten detaylı bilgi alabilir, indirip basit şekilde kurulumu gerçekleştirebilirsiniz. Bulunduğunuz klasörde mouse sağ tuş ile Git Bash ile git komut satırına – terminale, Git Gui ile git masa üstü programına ulaşabilirsiniz. Komutları öğrenmeniz açısından komut satırını kullanmanızı öneririm alıştıktan sonra daha çok seveceksiniz:)
Git Konfigürasyonu
Kurulum bittikten sonra bir kaç ayarlamalar yapmalıyız. Bu aşama zorunlu değildir. Yapılması önerilir.
Ayarlar “.gitconfig” dosyasında tutulur. Bir kere yapmanız yeterli olur.
$ git config --global user.name “Tahsin Yüksel” $ git config --global user.email info@tahsinyuksel.com
Böylece kullanıcı adımız ve email adresimizi tanıtmış olduk.
Git tüm ayarımızın listesini şu kod ile görüntüleyebiliriz.
$ git config --list user.name=tahsin yüksel user.email=info@tahsinyuksel.com color.status=auto color.branch=auto color.interactive=auto color.diff=auto ...
Yine ayarları değiştirmek için de aynı şekilde kullanabiliriz.
Git Yardım Almak
$ git help <eylem> $ git <eylem> --help $ man git-<eylem>
Örneğin, config komutu için kılavuzu sayfasını görüntülemek için şu komutu çalıştırabilirsiniz:
$ git help config
Github ve diğer git servisleri için güvenli bağlantı sağlamamız için bilgisayarımızı tanıtmamız gerekiyor. Bu sebeple SSH key oluşturmalıyız. Şimdilik bu kısmı geçiyorum. Git SSH key oluşturma için araştırabilirsiniz.
Git kavram – terimler:
Genel olarak kullanacağımız Git komut ve kavramlarına aşina olmak adına aşağıda yer verdim.
repository: Depo. Projenin ana klasörü gibi düşünebilirsiniz. Local ve Remote depolar olacaktır.
init: Bulunulan dizinde yerel bir kod deposu oluşturur. Proje başlatmak için ilk aşamadır.
clone: Kopyalamaya, klonlama. Uzak kod deposunun kopyasını almayı sağlar
pull: Uzak depodaki değişikliklerin ardından son halini almayı sağlar
push: Yerel deponuzda yaptığınız değişiklikleri uzak depoya göndermek için kullanılır.
branch: Dal. Projeyi parçalara ayırarak çalışma imkanı verir.Farklı özellikler geliştirm
commit: Yaptığımız çalışmaları depoya eklerken verdiğimiz etiket, mesaj, açıklayıcı yazı.
merge: Birleştirme. 2 farklı dal da çalışıyorsak değişiklikleri birleştirmek için kullanılır.
checkout: Dal seçimi yapmamızı sağlar. Dallar arasında geçiş, seçim yaparız.
.gitignore dosyası: Çalışmamızda bazı dosyaların veya dizinlerin versiyonlamasını yani depoya dahil olmasını istemeyiz. Bazen önemli kritik bilgiler içeren dosyalar olabilir bazende programın ürettiği dosyalar olabilir. Bunları depodan devre dışı etmemizi sağlar. “.gitignore ” dosyası içinde versiyonlamasını istemediğimiz dosya veya dizinleri belirtiriz.
Not: Açıklamalar herkesin anlayabileceği tarzda sunulmuştur birebir kavramları karşılamayabilir.
Git çalışma prensibi ile ilgili bilgilere şuradan
Evet git hakkında temel bilgileri, avantajlarını, kurulumu, ve ilk ayarlamalarını gördük. Sonraki yazıda Github ile entegre çalışma, kullanım ve komutları inceleyeceğiz.
Son olarak tavsiyem:
Gerek kendi geliştirmelerinizde gerekse gireceğiniz iş hayatında hemen hemen bir çok kurumda bu sistemler kullanılıyor ve bilinmesi ihtiyaç duyuluyor. Yukarıda saydığımız bazı özelliklerden dolayı kurumlarda özellikle toplu çalışmalar gerçekleştirildiğinden bu sistemler %90 üzerinde kullanılıyor.
Henüz başlamadıysanız şimdiden Git veya türevi versiyon kontrol sistemleri ile çalışmaya başlamanızı öneririm. Bunun hem size katkısı hemde gireceğiniz iş hayatınızda artısı olacağını ekleyerek yazının sonuna geliyoruz.