Notice: Undefined variable: ub in /home/ictrclub/blog_ictr/wp-content/plugins/advanced-page-visit-counter/public/class-advanced-page-visit-counter-public.php on line 148

Notice: Undefined variable: ub in /home/ictrclub/blog_ictr/wp-content/plugins/advanced-page-visit-counter/public/class-advanced-page-visit-counter-public.php on line 160

Notice: Undefined offset: 1 in /home/ictrclub/blog_ictr/wp-content/plugins/advanced-page-visit-counter/public/class-advanced-page-visit-counter-public.php on line 163
Git (SCM) Nedir - Blog

Git (SCM) Nedir

Ziyaretci:3350

Kaynak: freecodecamp.org

Bu yazıda kaynak kod yonetimi (Source Code Management (SCM)) programı

olan “git” ten bahsedeceğiz.

SCM için kullanılan programlarda genelde 2 yaklaşım bulunur.

1- Dağıtık versiyon kontrolü (Distributed Version Control System (DVCS)) :

Kaynak kodun çok kullanıcı makinesinde kullanılabilir/değiştirilebilir olduğu  versiyon kontrol çeşididir. Dağıtık olmasında ki espri değişiklik yapmak için ana kaynak kodunun üstünde olmanız gerekmemesidir.

2- Merkezi versiyon kontrolü (Centralized Version Control System (CVS)) :

Kaynak kodun editlenmesi için client-server mantığında bir makineye bağlandığınız kodun birden çok noktada dağıtılmadığı, değişikliklerin sadece ilgili serverlar üzerinde yapılabildiği dağıtık olmayan sistemdir.

Git bir DVCS aracıdır!!!.

Basitçe git, bize yapılan tüm değişikliklerin kim tarafından, ne zaman,kodun neresindeolduğunu görmek için tarih kayıtları tutar. Bunu yaparken tüm akışın tek bir çizgi üstünde olmasını beklemez.

Repository Nedir ?

Repository (repo) kaynak kodların bir arada bulunduğu/tutulduğu bir alandan başka bir şey değildir.

Git Nasıl Çalışır ?

Git’te temel olarak 4 temel seviye bulunur bir kodun tarihinin tutulması için;

1- Çalıştığınız yani gördüğünüz/gezebildiğiniz klasör (Working Directory)

2- Podyum Alanı (Staging Area)

3- Yerel Repo – PC üzerinde tutulan kod repo (Local Repo)

4- Uzak Repo – Uzak bir serverda tutulan kod reposu (Remote Repo)

Burada hobiciler için akla gelen soru localde kayıt tutabiliyorsam remotea ne gerek var olabilir. Cevap aslında çok sık ve genel bir problem olan veri kayıpları, PC göçmeleri, elektrik arızaları vs. olarak gösterilebilir.

https://cdn-media-1.freecodecamp.org/images/1*iL2J8k4ygQlg3xriKGimbQ.png

Yukarıda da gorebileceğiniz gibi git için kullanılabilecek milyonlarca komuttan en temelleri yukarıda ki gibidir. Hiç olmayan bir repo yu remotetan indirmek için git clone komutu kullanılabilir.

Adım 1: gitlab hesabı açmak

Uzak Repo servisi olarak gitlab.com u kullanabiliriz. Bu sebeple evvela bir gitlab hesabı oluşturmanızı tavsiye ederim.

Adım 2: git komut satırı aracını indirmek

GNU/Linux dağıtımlarında bazen kurulu olarak gelmekte olup, olmayanlarda kurulması için paket servislerinden yararlanılabilir. Yukarıda Windows için git command line tool kurulumunu indirip kurabilirsiniz.

Adım 3: Kendinizi kullanıcı olarak tanıtmak

$ git config –global user.name “Isim Soyisim”

$ git config –global user.email “<gitlabaccountemail>@example.com”

https://cdn-media-1.freecodecamp.org/images/1*JbyUdhLMEdglRxQk6PH7Vg.gif

Adım 3: İlk reponuzu indirip çalışmaya başlayın…

ictr gitlab hesabımız: https://gitlab.com/ictr.club

Tüm bunları yaptıktan sonra git mantığından biraz daha bahsetmek gerekebilir. Git temel olarak arka planda sıkıştırılmış veri tabanları ile çalışır. Örneğin bir geliştirme sürecinde geliştireceğiniz bir özelliğin çalışıp çalışmayacağından emin değiliz ve günler süren bir çalışma sonrası ortaya çıkacağı için versiyonlanmasını ve böylelikle adım adım ne yaptığımızı görmek istiyoruz. Git bu noktada branch denilen çok güçlü bir yapıya sahiptir. Branchler aslında reponuzun o anki halinden ayrılmanızı ve remote repoya bu farklı branche erişebilmenizi de sağlayan yapılardır. Basitçe aşağıda ki gibi gösterilebilir.

Aşağıda ki alıntı örnekte görülebildiği zaman çizgilerini remote repoda ki hareketler olarak görelim. Master branch açıldıktan hemen sonra “develop” branchi create edilmiştir. Diğer branchlerde buna müteakip açılıp kapanmıştır.

Branch açmanın birden çok yolu vardır.

1-

$ git branch <branch_name>

Bu komut branch i o an oldugunuz committen create eder local repoda lakin sizi o branche goturmez.

$git checkout <branch_name>

Daha onceden acilmis olan bir branche gitmek icin kullanilabilir. Lakin branch create etmez.

2- git checkout -b <branch_name>

Yeni bir branch olusturur ve working directory dedigimiz alani buraya senkronlar.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir