Cemre Acar
Git ve Git Kullanımı

Git ve Git Kullanımı

Git Nedir, Git Kullanımı, Git Komutları, Git ile GitHub farklı mıdır ? Bu tarz soruları sıkça sorulan sorular arasında gösterebiliriz. Git, kısaca bir versiyon kontrol sistemidir. Ne demek bu diyebilirsiniz. Bir örnek ile açıklamaya çalışalım. Bir ekibimiz olduğunu ve bir proje üzerinde çalışmak durumunda olduğumuzu varsayalım. Ekip aynı dosyalar üzerinden çalışmak ve işi hızlıca bitirmek zorunda. İşte bu senaryodaki en büyük sıkıntımız olan versiyon kontrol sorunumuz baş gösteriyor. A kişisinin yaptığı bütün değişiklikler , B kişisinde olmayacağı için, B kişisi o dosyayı farkında olmadan A ekip üyesinin yaptıklarının üzerine yükler ve A kişisinin yaptığı tüm değişiklikler kaybolur. Aynı senaryoyu tek başınıza çalışırken de düşünebilirsiniz. Mutlaka ki , bir dosya üzerinde değişiklik yaptıktan sonra o değişikliği geri almak , dosyayı orijinal haline döndürmek istediğiniz olmuştur. Normal şartlarda o veri kaybedilir ama Git bunun için var. Bu gibi durumların yaşanmaması için versiyon kontrol sistemleri oluşturulmuştur ve Git , bu versiyon kontrol sistemlerinden biridir.

Git , 3 alandan oluşur. Bu alanları sıralayacak olursak , Çalışma Alanı (Working Area) , Evreleme Alanı (Staging Area) ve Yerel Depo (Local Repository) şeklinde sıralayabiliriz. Çalışma Alanı , geliştiricinin o an üzerinde çalıştığı alandır. Dosyalar bu alanda yer alır. Geliştirici dosyalar üzerinde değişiklik yaptığında bu değişiklikler bu alanda görülür. Eğer ki değişiklikler kaydedilmez ise kaybolur. Çünkü biz Git’e bunu bildirmediğimizde Git bundan habersiz olacaktır. Çalışma Alanında neler olduğunu görebilmek için git status komutunu kullanırız. Bu komut sayesinde Çalışma Alanındaki dosyalar ve Evreleme Alanındaki dosyalar iki farklı dosya grubu halinde görüntülenirler. Dosyada yapılan değişiklikler kaydedildiğinde ve Git’e bildirildiğinde Evreleme Alanına geçilmiş olur. Ancak buradaki dosyayı tekrar düzenler ve Git’e bildirmezsek bu dosya tekrar Çalışma Alanında görülür. Bu Git’e bildirme işi git add komutu ile sağlanır. Sıra geldi son geçişimiz Yerel Depoya. Yerel Depo aslında bizim dizinimizin içindeki herşey oluyor. Bir diğer deyişle tüm commit’lerimiz burada tutuluyor. Dosyalar ve dosyalar üzerindeki değişikliklerin geçişi için git commit komutu kullanılır. Bu komut Evreleme Alanındaki tüm değişiklikleri alıp Yerel Depo’ya geçirir. Bu işlemden sonra Evreleme Alanı boş kalmış olur , yani yapılan tüm değişiklikler Yerel Depoya geçirilmiş ve her şey izlenme altına alınmıştır. Kayıt demişken Yerel Depo’da bulunan kayıt altına alınmış dosyaları temel olarak git log komutu ile görebiliriz. Yani aslında bu komut ile kayıt geçmişi görüntülenmiş olur. Bu olay örgüsünü aşağıdaki görsel ile de pekiştirebiliriz.

 

 

Olay örgüsünü anladıysak bazı temel Git komutlarını ve ne işe yaradıklarını inceleyelim. Daha sonra birlikte Git depomuzu oluşturalım.



git init :
Bu komut ile içinde olduğunuz klasör bir Git deposu haline getirilir.

git clone :
Bu komut var olan bir Git deposunu kopyalamak için kullanılır.

git add :
Bu komut ile belirttiğimiz dosya , çalışılan dizine eklenir.

git commit :
Bu komut ile çalıştığımız dizindeki dosyalar Git Yerel Deposuna taşınıyor.

git status :
Bu komut kullanılarak üzerinde çalıştığımız deponun durumu görüntülenir. Üzerinde değişiklik yaptığımız dosyalar , yeni eklenen dosyalar ve henüz commit komutu uygulanmamış dosyalar listelenir.

git pull :
Bu komut ile uzak depodaki dosyalar ya da değişiklikler üzerinde çalıştığımız depoya getirilir.

git log :
Bu komut ile proje üzerindeki kayıt geçmişi görüntülenir. Bu sıra kronolojik olarak belirlenir. Son kayıt en üstte yer alır.

Şimdi aşağıdaki 4 komut branch ile alakalı ve branch’in ne olduğunu bilmiyoruz. Branch kavramı nedir ?
En temel anlamda üzerinde çalıştığımız projemizi dallara ayırır. Yani elinizde bir proje var diyelim. Siz bu projede değişiklik yapmak istiyorsunuz ancak var olan da bozulmasın istiyorsunuz. Bunun için bir branch kullanır ve projenizi versiyonlarsınız. Örneğin , MyApp v1.0 elinizde ve yeni şeyler yapmak istediniz yeni bir branch oluşturarak, MyApp v1.0 üzerinde var olanı bozmadan çalışırsınız ve üzerinde çalıştığınız branch’e de v2.0 adını verebilirsiniz. Tabi bunlar örnek, isimleri böyle vermek zorunda değilsiniz.

git checkout -b :
Bu komut ile yeni bir branch oluşturulur ve oluşturulan branch aktif olur.

git checkout :
Bu komut ile üzerinde çalıştığınız branchden çıkıp başka bir branch’e geçiş yapabilirsiniz.

git branch :
Bu komut ile Deponuzdaki tüm branch’ler listelenmiş ve şu an üstünde çalıştığınız branch “*” ifadesiyle belirtilmiş olur.

git branch -d :
Bu komut ile belirttiğiniz branch silinir.



Birlikte Oluşturalım 

Sıra tüm bu kavramları birlikte denemeye ve kendi Git depomuzu oluşturmaya geldi. Bilgisayarınızda Git kurulu değil ise kurmanız gerekmekte. Kurulum için buraya göz atabilirsiniz. Şu an için Git'in kurulu olduğunu varsayıyor ve devam ediyorum.

Öncelikle yukarıda belirtmediğim birkaç komut kullanacağız. Bunlar bizim konfigürasyon düzenlemelerimiz olacak. Bilgisayarınızda Terminali açtığınızda git config –list komutu ile bir kullanıcı tanımlamasına sahip miyiz değil miyiz görelim. Komutu uyguladıktan sonra eğer bir tanımlama yapılmamışsa boş bir geri dönüş sağlanır. Kullanıcı tanımlamak için şu komutları kullanıyoruz.

git config --global user.name “Adınız Soyadınız” 
git config --global user.email “E-Posta Adresiniz”
Bu komutlardan sonra tekrar git config –list komutunu uyguladığınızda tanımlamanın yapıldığını göreceksiniz. Bu konfigürasyon işlemimizin ardından Git depomuzu oluşturmaya başlayabiliriz. Ben masaüstünde GitRepo adında bir klasör oluşturacağım ve bunu Git Deposu haline getireceğim.

Depomuz oluştu. Şimdi ben örnek olarak içerisine bir MyFile.txt dosyası atmak ve içerisinde bir şeyler yazmak istiyorum. Bu her hangi bir dosya topluluğu da olabilirdi elbet ben yalın ve anlaşılabilir olması sebebiyle .txt dosyası ile göstereceğim. MyFile.txt dosyamızı Git depomuza attıktan sonra git status komutunu yazdığımızda henüz dosyamızı commit etmediğimiz görülüyor.

MyFile.txt dosyamızı işleme almak için git add MyFile.txt komutunu kullanabiliriz. Bu komutu işleme aldıktan sonra tekrar git status komutunu işleme koyarsak aşağıdaki şekilde bir görüntü ile karşılaşırız.

Artık dosyalarımızı kayıt altına alabiliriz. Bunun için git commit komutu kullanılır. Bu komutu git commit -m “Orijinal Dosya” şeklinde belirtebiliriz.

Bu işlemden sonra git status komutu verirsek dosyamızın burada olmadığını ve yerel depomuza geçtiğini anlayabiliriz. Bunu git log komutu ile liste şeklinde de görebiliriz.

Git ve Git kullanımı hakkındaki yazımı burada sonlandırıyorum. Sonraki yazım olan GitHub ve GitHub Kullanımı adlı yazımı da okumanızı tavsiye ederim. Bu yazımda eksik ya da yetersiz gördüğünüz kısımları yorum olarak belirtebilirsiniz. Sağlıklı kalın.
 

Heyy ! Blog'a abone olup yazılarımdan ilk sen haberdar olmak ister misin ?

ABONE OL!

Yorumlar

Mert | 22.04.2020

Dostum eline sağlık cok guzel bir yazı olmuş. Dediğin herşeyi uyguladım ve sorun çıkmadı. Sadece anlamadıgım şimdi biz bu dosyayı nereye commitlemis olduk github.com da repositorylerimde goremıyorum bunu nasıl ilişkilendirebiliriz?

Yazar | 22.04.2020

Sevgili Mert,
Git, local dosyalarımız üstünde versiyon kontrolüne yarar. Burada oluşturduğun dosyayı GitHub'a göndermek istersen GitHub & GitHub Kullanımı adlı yazımı okumanı tavsiye ederim. Yorumun için teşekkürler, umarım cevabım faydalı olmuştur.

Yorum Ekle

Yorumunuz onaylandıktan sonra yayınlanacaktır.