Özellikle açık kaynak ve/veya özgür yazılım geliştirmeye adım atan hemen herkesin bir şekilde duyduğu kavramlardan biridir Git. Bu alanlarda geliştirici olma gibi bir düşünceniz, bir hayaliniz varsa Git’i sadece duymuş olmanız yetmez, kullanmayı da çok iyi bilmelisiniz.

Bu yazıda da basitçe Git kullanımını sizlere aktarmaya çalışacağız. Her şeyden önce cevap verilmesi gereken önemli bir soru var, Git Nedir?

Git Nedir?

Tanım olarak söylemek gerekirse:

Git, yazılım geliştirme süreçlerinde kullanılan, hız odaklı, dağıtık çalışan bir sürüm kontrol ve kaynak kod yönetim sistemidir. İlk olarak Linux çekirdeği’nin geliştirilmesinde kullanılmak üzere 2005 yılında bizzat Linus Torvalds tarafından tasarlanıp geliştirilmiştir. (…)

Vikipedi

Bu tanımı biraz daha açalım. Bir yazılım geliştirirken yaptığınız her değişikliği aşama aşama yazabileceğiniz, yapılan değişiklikleri kolayca görebileceğiniz ve hatta hızlıca geri dönebileceğiniz, tek bir projede birden fazla kişiyle çalışmayı kolaylaştıran, kısacası sürüm takibini kolaylaştırarak yazılımcılara büyük faydalar sağlayan bir sistemdir. Git, yerel bir depoda çalışabileceği gibi çevrimiçi veya çevrimdışı uzak depolarda da çalışabilir. Günümüzde popüler olan GitHub ve GitLab, en çok kullanılan çevrimiçi Git servislerindendir. GitHub/GitLab ve Git birbiriyle karıştırılmamalıdır. Git bir sistem, GitHub ve GitLab ise birer servistir.

Başlayalım

Yukarıda Git’in ne olduğunu açıkladıktan sonra artık başlayabiliriz. İlk olarak yapmamız gereken şey ise tabii ki kurulum.

Kurulum

Pardus’unuza ve diğer Debian tabanlı Linux dağıtımlarına Git’i kurmak için uçbirim ortamını açıp aşağıdaki komutu girebilirsiniz.

sudo apt install git

Bu komut diğer paket sistemlerini kullanan dağıtımlarda değişkenlik gösterebilir.

Kurulum tamamlandıktan sonra ise kurduğunuz versiyonu aşağıdaki komutu yazarak öğrenebilirsiniz.

git --version

İlk Yapılandırma

Kimliğinizi Git sistemine tanıtmak, ilk yapmanız gereken şeylerden biridir. Böylece geriye dönüp baktığınızda yapılan değişikliklerin kim tarafından yapılmış olduğu belli olur ki, bu çok önemlidir. Sırasıyla aşağıdaki komutları uçbirime girerek bu aşamayı da tamamlayalım.

git config --global user.name "kullanici-adi"
git config --global user.email "eposta-adresi"

Örnek Kullanım:

git config --global user.name "prdsmehmetstc"
git config --global user.email "info@mehmetsutcu.com"

Kullanım

Öncelikle Git’i kullanmak istediğiniz dizine uçbirim arayüzü vasıtasıyla gitmelisiniz. Git komutlarını kullanırken çalışmak istediğiniz dizinden çalışmalı ve o dizinden çıkmamalısınız.

İstediğiniz dizine ulaştıktan sonra aşağıdaki komutu girmelisiniz.

git init

Eğer bu komutu girerken bulunduğunuz dizine dosya yöneticisinden bakarsanız içinin boş olduğunu görebilirsiniz, eğer gizli dosyaları göster seçeneğini işaretlemediyseniz tabii. Aslında klasör boş değil, içinde .git adlı bir klasör oluştu. Artık o klasör bir “Git Deposu”.

Klasörde yani depoda çalışmalarınızı yaptınız, dosyalarınızı oluşturdunuz. Şimdi ise aşağıdaki komutu girerek oluşturduğunuz dosyaları depoya ekleme vakti.

git add .

Yukarıdaki komutta görüldüğü gibi git add . yazarsanız bütün dosyalar geçiş bölgesine alınacaktır. Sadece tek bir dosyayı almak istiyorsanız ise git add dosyaAdi şeklinde; bir dizini içindekilerle beraber almak istiyorsanız git add dizinAdi yazabilirsiniz.

Yukarıdaki komutla bütün işler bitmiyor, şimdi geçiş bölgesine aldığınız dosyaları “commit”lemeniz, yani sisteme işlemeniz gerekiyor. Bunun için ise aşağıdaki komutu girin.

git commit -m "Açıklama"

Artık dosyalar sisteme işlendi. Şimdi diğer faydalı ve bilinmesi gereken komutlara geçelim.

git log

Bu komut ile commit’leri görebilir, şu ana kadar ne zaman ne yapılmış hepsini görebilirsiniz.

git status

Bu komut size projenizin durumunu gösterir. Commit’lenecek bir dosya var mı, silinmiş veya eklenmemiş bir dosya var mı gibi bilgileri size gösterir.

git diff

Bu komut size dosyalarınızda yapılmış olan bir değişikliği satır satır gösterir. Değişiklikleri eğer ekleme yapıldıysa yeşil renk ve (+) işaretiyle, çıkarma yapıldıysa kırmızı renk ve (-) işaretiyle gösterir. Yapılan değişiklikleri uygulamak için tekrar commit etmeniz gerekir. Ayrıca geçiş bölgesi ve depo arasındaki farklılıkları görmek için ise git diff --staged komutu kullanılır.

git rm

Git’te dosya silmek için iki yöntem vardır. Birisi elle silme, diğeri ise git komutu kullanarak. git rm dosyaAdi yazarsanız ilgili dosyayı, git rm -r dizinAdi/ yazarsanız da ilgili dizini ve içindekileri siler. Bu işlemin ardından commit işlemini tekrarlamanız gerekir.

git mv

Bu komut ile dosyaların isimlerini değiştirebilir, veya taşıyabilirsiniz. Dosya ismini değiştirmek için git mv dosyaAdi yeniDosyaAdi şeklinde, dosyaları taşımak için ise git mv dosyaAdi dizinAdi/ şeklinde yazabilirsiniz. Bu işlemden sonra da tabii ki tekrar commit’lemelisiniz.

Yapılan değişiklikleri geri alma

Git projelerinde yapılan değişikliklerin geri alınması, dosyanın bulunduğu bölgeye göre değişkenlik gösterir. Geçiş bölgesinde farklı, çalışma alanında farklı işlem yapılır.

Çalışma dizininde geri alma

Çalışma dizinindeki bir dosyada yapılan değişikliği geri almak istiyorsanız aşağıdaki komutu girmelisiniz.

git checkout -- dosyaAdi

Geçiş bölgesinde geri alma

Geçiş bölgesinde bulunan bir dosyada yapılan değişikliği geri almak istiyorsanız sırasıyla aşağıdaki komutları girmelisiniz.

git reset HEAD dosyaAdi
git checkout -- dosyaAdi

Belirli bir commit’e tamamen geri dönüş yapmak istiyorsanız aşağıdaki komutu girmelisiniz. 

git checkout 95a6e33d877afbfe6e43419996cda613bdd4936a -- .

Yukarıda kalın olarak işaretlenmiş kısım ilgili commit’in ID’sidir. Bunu git log komutu ile öğrenebilirsiniz. Eğer o commit’teki yalnızca bir dosyayı geri döndürmek istiyorsanız . yerine dosya adını yazmanız yeterli olacaktır. Bu durumdan sonra değişikliklerin uygulanması için tekrar commit etmeniz gerekir.

Eğer yerelde çalışmak yerine GitHub veya GitLab’te çalışmak istiyorsanız bilmeniz gereken birkaç şey daha var. Onun için sizi şu yazıya alalım. 🙂