HASAN TEZCAN computer science

Versiyon Kontrol Sistemi GIT | Hasan Tezcan

Versiyon Kontrol Sistemi GIT

version_kontrol__sistemi

Herhangi bir projeyi geliştiriken böyle bir tablo ile muhakkak karşılaşmışsınızdır. Bu bir ödevi yapmak için olabilir ya da bir şiir yazarken. Projeniz üzerinde yapılan değişiklerinizi bir şekilde saklamak için aslına bu aşamalardan geçen herkes bu görselde olduğu kendi versiyon sistemini geliştirir ve bunu kullanır. Ne kadar verimli olduğu tartışılır ama bir versiyon kontrol sistemine ihtiyaç duyduğumuz ortadadır.

Bugün sizlerle birlikte var olan versiyon kontrol sitemlerinden ve günümüzde yaygın olarak kullanılan GIT version kontol sisteminin nasıl kullanıldığından bahsedeceğim.

Versiyon Kontrol Sistemi Nedir?

Versiyon kontol sistemleri herhangi bir proje üzerine çalışırken size yaptığınız değişiklikler ve yenilikler arasında boğulmadan temiz bir şekilde çalışabilme imkanı sunar.

Version kontol sistemleri ile çalışamayı öğrendikten sonra bir proje üzerinde zamanda geri gidebilir projenizin falanca zamanki halini o günkü hali ile inceleyebilir ya da projenizin o anki halini bozmadan üzerine yeni denemeler yapabilir ve bu denemeniz istediğiniz gibi olursa ana projenize bu özelliği ekleyebilirsiniz.

Bu söylediklerimi en başta gördüğümüz insan beyninin direk oluşturduğu versiyon kontrol sistemi ile yapmaya kalkmak bi yerde mantıklı olsa da bu yöntemle devam etmek bir yerden sonra sizi sinir krizlerine sokabilir hata ve hata projeninizi geliştirecem derken çalışır halinden de olmanıza sebep olablir.

Gelin şimdi var olan versiyon sistemlerne bir göz atalım.

[0], [1]

Bu versiyon kontol sistemlerinden kimileri hala aktif kimileride şu an kulladığımız versiyon kontrol sistemlerine zamanına ilham olmuş ve şu an ömürlerini doldurmuş durumdadır.

Bugün biz günümüzde en yaygın kullanılan versiyon kontrol sistemi GIT ile çalışacağız ve projelerimizi git ile yönetmeyi öğreceğiz.

Git Nedir?

Git özgür ve dağıtık bir version kontrol sistemidir. GIT, linux’ü geliştiren ekibin o zamanlar kullandıkları BitKeeper adlı proje yönetim araçının ücretsiz lisans anlaşmasının bitmesi ile Linus Toravalds ve ekibinin BitKeeper’ı kullanırken yaşadıkları sıkıntıları da göz ederek tasarladıkları 2005 yılında ortaya çıkan bir versiyon kontrol sistemidir.

Git ismi, Linus Torvalds tarfından Git’in ilk versiyonunun yayımlanması ile verilmişitir. Aslında Git kelimesi İngiliz ingilicesinde “aptal” anlamına gelen argo bir kelime. [2]

git_dictionary

Ayrıca Linus Torvalds “GIT” isminin açılımını şu şekilde ifade ediyor;

Git Nasıl kullanılır?

Öncelikle git versioyon kontrol sistemi yazılımının bilgisayarınızda yüklü olması gerekiyor.

Bunu öğrenmek için GNU/Linux bir işletim sistemi kullanıyorsanız paket yöneticiniz ile git programnı aratıp bilgisayarınıza yüklü olup olmadığını öğrenebilirsiniz.

git_is_exist

Eğer GNU/Linux dışında bir işletim sistemi kullanıyorsanız kurulum aşamalarınıa git’in resmi sitesinden bakabilirsiniz.


git config

Versiyonlamaya başlamadan önce yazacağımız kodların kimin tarafından yazılıdığının bilinmesi açısından GIT ayarlarımızı yapmamız gerekiyor.

hali hazırdaki git ayarlarını görmek için

$ git config --list

Henüz bir ayar girmemişseniz boş bir çıktı alacaksınız. Ayarlamak için;

$ git config --global user.name "kullanıcı_adınız"
$ git config --global user.email "mail_adresiniz"

Şimdi projemizi versiyonlamak için hazırız.

git_annotation

git init

Projemizi versiyonlamak için önce proje dizinimize girip ardından da git init komutunu yürütmemiz yeterli.

$ git init
Initialized empty Git repository in /projenin_adresi

Komutu yürüttükten sonra hiç bir şey değişmemiş gibi görüyor fakat öyle değil.

$ ls -a
.  ..  .git

git yazılımını projemizden başlatıktan sonra projemiz içine gizli halde gelen git diznini görmekteyiz. Bu dizin içinde versiyonlamaya dair tüm dosyalar tutuluyor. Bu dosyanın silinmesi halinde tüm versiyonlama işlemlermiz yok olacakıtır.


git_areas

git add

iki tür dosya durumu vardır bunlar tracked ve untracked

Dosyaları staging area’ya almak için - stage

$ git add <dosya_adı>

stagin areaden çıkarmak için - unstage

$ git rm --cached <dosya_adı>

bu olaylar direk .git dosyalarına yansır bunu göremek için

ayrı bir terminalde şu komutu çalıştırsanız değişiklerikeri takip edebilrsiniz.

$ watch -n .5 tree .git

3 adet git objesi vardır bunlar;

[3]

git status

git commit

a new snapshot

Bir commit geri gider yani HEAD kafasını bir önceki commitin kine eş hale getirir. Son durumdan kalan değişikler untracked hale gelir.

git reset HEAD~

git log


Branchlar ile çalışmak

git brach

bütün brachları listeler

git branch

brach oluşturmak

git checkout -b <branch_adi>

local brach silmek

git branch -d <branch_adi>

brachdaki güncellemeleri uzak depoya yollar

git push origin <branchname>

git stash

git stash

git stash pop

kaynakça:

basic git commands