Merhabalar. Bu yazımda yazılım camiasında en çok kullanılan versiyon kontrol sistemi olan git i anlatmaya çalışacağım. Git aynı zamanda Linux kernel in geliştiricisi olan Linus Torvalds tarafından 2005 yılında geliştirilmiştir. Tamamen ücretsiz olan bu sistemin kullanımıda oldukça basittir. Özellikle çok kişili projelerin olmazsa olması olan git için yardımcı birçok yazılım mevcuttur. Bir git sunucusu için herhangi bir ek yazılıma gerek duymazsınız. Ancak hız ve kolaylık açısından çözümle mevcuttur ve bende size bunu öneririm. Bunlardan biri hiç şüphesizki Github dır. Github bizlere hazır git sunucu hizmeti saylayan bir sistemdir. Eğer açık kaynak bir projeniz var ve bunu bir çok kişi geliştireceksiniz, ozaman github işinizi fazlasıyla görecektir. Üstelik ücretsiz olan bu hizmet bir çok yazılımcı tarafından kullanılmaktadır. Ancak dersenizki biz arkadaşlarla kendi aramızda geliştireceğiz. Şimdilik açık kaynak olmasına gerek yok. Oda mümkündür ancak bu hizmet ücrete tabi olur. Aylık belirli bir ücret karşılığında projenizi özel olarak github da geliştirebilirsiniz. Bir diğer sistem ise benim sunucularıma kurmayı tercih ettiğim Gitlab dır. Gitlab verdiği online git hizmetinin yanısıra kendi sunucularımızada kurma ve kullanma imkanı sağlamaktadır. Tamamen ücretsiz olan bu açık kaynak yazılım, ruby ile geliştirilmiştir. Kurulumlarına tabiki girmeyeceğim zira benim buradaki amacım git kullanımını anlatmaktı. Fazla dallanmaya gerek yok. :) Şimdi git işlemlerine yavaştan başlasak diyorum artık. Ha bu arada git client kurmadan başlayamayız biliyoruz değilmi? Size zahmet buradan kurulumu yapın başlayalım.

Git Komutları

Ben anlatımlarını linux terminaline göre yapacağım. Ancak Windows kullanıcılarıda komut satırında (cmd) bu komutları takip ettiklerinde sıkıntı çekmezler. Git in kullanımının çok kolay olduğunu veri çektiğimizde anlayacaksınız. Git in kendi içerisinde birçok komutu vardır. Şimdi bu komutları önem sırasına göre anlatacağım.

config

Local makinanız üzerindeki algoritmalara, dosya formatlarına vb gibi git in sizin adınıza kullanacağı kaynaklar için isim ve mail tanımlamalarınızı yapacağınız komuttur. Bir nevi kimliğinizi git e tanıtmış oluyorsunuz.

$ git config --global user.name "Sefa Akgumus"
$ git config --global user.email sefaakgumus@pythonturkiye.com
init

Git repository oluşturmak için kullanılır. Bulunduğunuz dizinde bu komutu çalıştırdığınızda o dizinin içinde git gizli dosyalarını oluşturur ve bir git repository si haline getirir.

$ mkdir projem
$ cd projem
$ git init
clone

Uzaktaki bir git kaynağından bize verilen yetki doğrultusunda veri çekmek için kulllanılır.

$ git clone git@pythonturkiye.com:sefa/projem.git
$ git clone http://git.pythonturkiye.com/sefa/projem.git
add

Git repository sine dosya veya dizin eklemek için kullanılır. Dizin içerisine yeni eklediğiniz dosya / dizin otomatik olarak git repository sine eklenmez. Bunu biz bu komut ile yaparız

$ git add
rm

Git repository sinden dosya / dizin silmek için kullanılır.

$ git rm dosyaadi
commit

Değiştirilen dosyaları git repository sinde kaydettirmemiz için kullanılır. İsterseniz tek bir dosyayı istersenizde bütün değişiklikleri onaylatabilirsiniz.

$ git commit -a -m 'Tum dosyalari degistirdim bilginize.'
branch

Git repository si içerisindeki branch leri listeler.

$ git branch -a * master remotes/origin/master
checkout

Farklı bir branch üzerinde çalışmak için kullanılır. Üzerinde çalıştığımız bir branch varken bu komut ile farklı bir brach e geçiş yaparız.

$ git checkout guncellenecekbranchadi
merge

Yeni bir branch oluşturur ve bu branch üzerinde çalışmamızı sağlar.

$ git merge yenibranchadi
remote

Uzaktaki bağlanacağınız git server lokasyonunu bu komut ile tanımlarsınız.

$ git remote add origin serveradi

Şu anki ayarlanmış uzaktaki repositoryleri listelemek içinde şu komut kullanılır.

$ git remote -v
push

Onaylanmış olan değişiklikleri repository üzerine yüklemek için kullanılır.Şu anda aktif olan branch üzerine dosyaları upload etmek için şu komut kullanılır.

$ git push origin branchadi

Bütün branchlara upload yapmak için ise şu komut kullanılır.

$ git push --all origin

Repository nizdeki bir branch i silmek için şu komutu kullanabilirsiniz.

$ git push origin :branchadi

Git Local Repo Oluşturma

Şimdi basit bir git reposunu nasıl oluşturacağız onu anlatayım. Öncelikle kimliğimizi git e tanıtmamız gerekiyor.

$ git config --global user.name "Sefa Akgumus"
$ git config --global user.email "sakgumus@pythonturkiye.com"

Şimdi local repository oluşturabiliriz. Bunun için bir klasör oluşturacağım ve bu klasörü git repository si yapacağım.Sonrada dosyaları çekeceğim uzak sunucuyu tanımlayıp dosyaları local repoma indireceğim.Ardından bir dosya ekleyim bu değişikliği tekrar uzak sunucuya upload edeceğim.

$ mkdir denemeproje
$ cd denemeproje
$ git init
$ git clone http://git.pythonturkiye.com/testekibi/denemeproje.git

Dosyaları localimize indirdik. Burada yetkinize göre kullanıcı adı ve şifre isteyebilir.Şimdi repomuza bir dosya oluşturup karşıya yükleyelim.

$ cd denemeproje
$ touch benim_ilk_dosyam.txt
$ git add benim_ilk_dosyam.txt
$ git commit -m "Ilk dosya yuklemem"
$ git remote add origin http://git.pythonturkiye.com/testekibi/denemeproje.git
$ git push -u origin master

Böylece dosyamızı karşıya yüklemiş olduk.Sizlere bol git li projeler diliyorum. Bir sonraki yazımda git ile Pycharm üzerinde repo yönetimini anlatacağım.