Git Nedir? Temel Git Komutları Nelerdir?

Sibel Yıldız
5 min readJan 29, 2020

Git’in biraz tarihçesinden bahsedecek olursak 2005 yılında Linus Torvalds ve Linux çekirdeğini kodlayan ekip tarafından Linux kaynak kodunun versiyon kontrolünü yapmak için geliştirilmiştir. 2005 yılından bu yana da Git gelişmeye ve milyonlarca yazılımcının hayatını kolaylaştırmaya devam ediyor

Git, bir Versiyon Kontrol Sistemi (VCS)’dir. Versiyon kontrolü, bir dosyadaki değişiklikleri takip edebilmek için uygulanan bir sistemdir. Git bu değişikliklerin tarihçesini ve içeriğini bizim için takip eden ve kaydeden bir veritabanıdır diyebiliriz.

Versiyon Kontrol Sistemi kullanılarak herhangi bir anda üzerinde çalışılan dosyaların o anki halleri kaydedilebilir, daha sonra bu kaydedilmiş haline geri dönülebilir.

Versiyon Kontrolü; HTML dosyaları, Android veya İphone uygulaması kaynak kodu gibi birçok yerde kullanılabilir. Dosyalar üzerinde çalışırken hangi işletim sistemini veya programı kullandığınızın bir önemi yoktur.

Neden Git Kullanmalıyız?

  • Uyumlu ekip çalışmasını sağlar. Farklı kişilerle aynı dosyalar üzerinde çalışma durumunda sorunlar çıkmasını engeller.
  • Versiyonların düzgün bir şekilde takip edilmesini sağlar.
  • Eski versiyona geri dönebilmeyi sağlar.
  • Dosyaların neden değiştiğini Commit yapılırken yazılan açıklamalardan kolayca anlamayı sağlar.
  • Aynı projede çalışan herkesin kendi bilgisayarında yapılan değişikliklerin listesi ve tarihçesi tutulur.

Versiyon Kontrol Sistemleri ikiye ayrılır:

CVS (Centralized Version Control System)

Working Copy diye yazılan yer o an çalışılan projeyi tutan klasördür. Burada yapılan değişiklikler “Commit” edilerek Repo’ya gönderilir. Repo’da bir değişiklik varsa “Update” ile bunlar alınır. Burada tüm istemciler bir Repoya bağlıdır ve Repo online olduğu sürece işlem yapılabilir. Repo’da ya da bağlantıda bir sorun çıkması halinde projenin işleyişinde de tutarsızlıklar ve sorunlar meydana çıkabilir.

DVCS (Distributed Versiyon Control System)

Bunun güzelliği şu, ana Repo’ya sürekli bağlantı olmasına gerek yok. Çünkü görüldüğü gibi her istemcinin kendi bilgisayarı içinde de bir Repo’su var. Ve bunun üzerinde de sürekli commit’ler yapılabiliyor. Daha sonra da bu Repolar ana Repo’da toplanıyor ve ilgili istemciler bu Repo’dan verilerini alabiliyor. Daha hızlıdır, oluşabilecek hataları karşı daha dayanıklıdır.

Kurulumu;

https://git-scm.com/downloads

Yukarıdaki linkten işletim sisteminize uygun versiyonu indirebilirsiniz. Oldukça basit bir kurulum vardır. Exe dosyasını indirip kurulumu gerçekleştirdikten sonra Git Bash’ini açıp git kullanmaya başlayabilirsiniz.

Artık temel Git komutlarını öğrenmeye geçebiliriz.

Git İş Akışı

git akışı

Yukarıda gördüğünüz yapılar Git’in kendi dosya sistemi içinde yer alır. Bunları kısaca açıklayalım.

Working Directory : Prejenizin ana klasörüdür. Yani git init komutunu çalıştırdığınız klasör. Bu klasörde projenizde yer alan dosyaların ve klasörlerin bir kopyası bulunur. Birden fazla versiyon olabilir ancak burada sadece bir versiyon bulunur.

Staging Area : Working directorden dosyayı buraya taşıyoruz. Burada üzerinde değişiklikler yapıyoruz. Yani proje dosyalarınızdaki değişiklikleri Repository’e göndermeden önce kayıt altında tuttuğunuz alandır.

Git Directory(Repository) : Staging area’da bulunan dosya ve klasörler Commit komutu ile buraya eklenir.

Temel Git Komutları

Projenizin Git işlemlerini yapmak için önce consolda proje klasörünüzün içine girmeniz gerek. Bunu gerçekleştirebilmeniz için öncelikle birkaç basit komutu açıklayacağım.

pwd : Konsolun şuan nereden olduğu bilgisini verir.

cd : Gidilmek istenilen klasör ismi ile yazılıp istenilen klasöre girer.

ls : Bulunulan klasörün içindeki dosyaları listeler.

ls -a : Bulunan gizli dosyaları da gösterir.

Şimdi Git için kullanacağımız komutlara geçebiliriz;

git — version

İlk önce Git’in kurulduğundan emin olmalısınız. Git Bash ekranını bunu yazarak bilgisayarınızda hangi git’in hangi versiyonunun kurulu olduğunuzu görebilirsiniz.

Kurulu olan Git versiyonu.

git config — global user.name “kullanıcı adı”

git config — global user.email “mail adresi”

Git kullanmaya başlamadan önce bazı ayarlar yapmanız gerekiyor. Bunu bir defa yazmanız yeterlidir. Git’e kullanıcı adı ve email eklemeniz lazım. Bu sayede yapılan işlemlerin kim tarafından yapıldığı görülebiliyor.

Kullanıcı adı ve email eklendi.

git init

Proje klasörünüz içindeyken bu komutu yazdığınızda Git başlatılır. .git uzantılı bir klasör oluşur. İçinde Git’in çalışması için gerekli dosyalar bulunur. Bu dosyalar üzerinde değiklik yapılması tavsiye edilmez. Artık bu projedeki dosyalar Git tarafından takip edilmeye başlanır.

Git başlatıldı.

git add

Değiştirilen dosyalardan hangilerinin Commit işlemine dahil edileceğini belirleriz. Ardından bu dosyaları git add komutu ile Staging Area’ya taşırız.

Dosyayı staging area’ya taşındı.

git status

Commit işlemi yapılmadan önce yapılan değişiklikleri bu komut ile görebiliriz.

Add ile dosya eklendiğini belirtiyor.

git log

Yapılan Commit’leri listelemek için kullanılır.

Yapılan bütün commitler listelendi.

git commit -m

Değişiklikler Commit edilir. Yani Repository’e gönderilir. Komutu yazdıktan sonra yanına tırnak içesinde yapılan değişikliğin kısa açıklaması yazılır.

Değişiklikler commit edildi.

git commit -a -m

Commit komutunu -a parametresi ile kullanırsak dosyamızı Staging Area’ya taşımadan direkt olarak Repository’e ekler.

Add ile staging area’ya taşınmadan repo’ya eklendi

git commit — amend -m

Açıklaması yanlış yazılan son Commit’in açıklamasını tekrar yazmak için kullanılır.

Son commit açıklaması değişti.

git commit checkout

Commit’ler arası değişim yapmak için kullanılır. Geçmek istediğimiz Commit için bu komutun yanına, Commit’leri listelediğimiz zaman çıkan Commit numarasını yazıp kullanıyoruz. Master yazarak ise tekrar geri eski haline dönebiliyoruz.

Birinci commit’in ekli olduğu duruma döndü.

Basitçe Git komutları bu şekildeydi.

Kodlarınızda hiç hata almamanız dileğiyle, bir sonraki konuda görüşmek üzere :)

--

--