Yücel Alkan

Temel Git Komutları

Merhaba, bu yazımda temel git komutlarından bahsedeceğim. Eğer Git ile ilgili bilgi edinmek ve Git kurulumunun nasıl yapıldığını gözden geçirmek istiyorsanız bu linki, Git temel yapısı ve kavramları hakkında bilgi edinmek istiyorsanız bu linki inceleyebilirsiniz.

Git Ayarlarının Yapılması 

Öncelikle Git ayarlarının yapılması ile başlayalım. Git sisteminde kullanılan kullanıcı adınızı değiştirmek istiyorsanız terminali açıp aşağıdaki komutu çalıştırabilirsiniz.

git config --global user.name "Kullanıcı Adı"

Mail adresinizi değiştirmek için ise aşağıdaki komutu çalıştırmanız gerekmektedir.

git config --global user.email "email@adresi.com

Git Projesi Oluşturma

Bir projede Git kullanacaksanız terminal ekranını açıp, proje klasörünüzün olduğu konuma giderek aşağıdaki komutu çalıştırmanız gerekmektedir. Eğer Linux kullanıyorsanız cd, ls gibi komutları bilmenizde fayda var.

git init 

Git projesinin başarılı bir şekilde oluşturulup oluşturulmadığını aşağıdaki komutla kontrol edebilirsiniz.

git status

Bu komutu çalıştırdığınızda aşağıdaki gibi bir çıktıyı görmeniz gerekmektedir.

Üzerinde bulunulan dal: master

Henüz bir gönderi yok

Gönderilecek bir şey yok (dosyalar oluşturun/kopyalayın ve izlemek için "git add" kullanın)

Değişiklikleri Kontrol Etme 

Git yapısını açıkladığım yazımda Git'in proje klasörü, geçiş bölgesi(Stage Area) ve depo(repository) olmak üzere üç yapıdan meydana geldiğini söylemiştim. İşte proje klasörü, geçiş bölgesi ve depo arasındaki farklılıkları kontrol etmek için aşağıdaki yapıyı çalıştırabilirsiniz. Status komutu genel anlamda Git projeniz hakkında bilgi verir. 

git status

Add Komutu

Proje klasöründeki değişiklikleri geçiş bölgesine(stage area) göndermek için add komutu kullanılır.

git add .

Bu komuttaki nokta, projedeki tüm değişiklikleri geçiş bölgesine gönder anlamına gelir. Eğer sadece bir dosya veya klasördeki değişiklikleri göndermek istiyorsanız nokta yerine dosya veya klasör adını yazabilirsiniz. 

Commit  Komutu

Geçiş bölgesinde yer alan değişiklikleri depoya bildirmek için commit komutu kullanılır. Önce add, sonra commit komutunun kullanılmasıyla proje klasöründeki tüm değişiklikler depoya bildirilmiş yani kopyalanmış, yedeği alınmış olur. 

git commit -m "Açıklama"

Açıklama kısmına yaptığınız değişikliklerle ilgili hatırlatıcı metinler yazabilirsiniz ya da versiyon numarası verebilirsiniz.

Log Komutu

Projenizde yaptığınız tüm commit işlemlerini listelemek yani tüm yedekleri görüntülemek istiyorsanız log komutunu kullanabilirsiniz. 

git log

Bu komutu çalıştırdığınız zaman aşağıdaki gibi bir çıktı verilecektir. 

commit f059e68633e77b9029128c57977a26250d5c5cd7 (HEAD -> master)
Author: Yücel <mailadresi@gmail.com>
Date:   Sat Jan 30 15:49:47 2021 +0300

    v 1.1

commit 2942e44f1b5944060496af3d67c04d04ea4f42c0
Author: Yücel <mailadresi@gmail.com>
Date:   Sat Jan 30 15:49:31 2021 +0300

    v 1.0

Burada v 1.0 ve v 1.1 gibi isimler benim commit işlemi sırasında açıklama kısmına yazdığım ifadeler. Siz hangi açıklamayı yazarsanız o görünecektir. 

Bu çıktıyı incelediğimiz zaman projeye ait 2 commit işlemi yapıldığını görüyoruz. Yine her işlem için ayrıntılı bir tarih ve saat bilgisi yer almaktadır. commit ifadesinin karşısında yer alan uzun kod ise o işleme ait benzersiz bir koddur. Sonraki işlemlerde bu kodun ne işe yaradığını göreceğiz. 

Diff Komutu

Diff komutu proje klasörü ile geçiş bölgesinde yer alan dosyalardaki farklılıkları listeler. Diyelim ki commit işlemi yaptıktan sonra bazı dosyalarda kod yazmaya devam ettiniz. İşte aşağıdaki komutu çalıştırırsanız proje klasörünüzde yer alan dosyalar ile geçiş bölgesine gönderdiğiniz dosyalar arasındaki kod farklılıklarını görebilirsiniz.

git diff

Bu komutu çalıştırdığınızda aşağıdaki gibi bir çıktıyla karşılaşabilirsiniz. 

diff --git a/main.py b/main.py
index 7ecbb04..d7510ee 100644
--- a/main.py
+++ b/main.py
@@ -1 +1 @@
-print("Merhaba")
+print("Selam"

Başında + olan satırlar, bu dosyaya eklenen satırları, - olan satırlar ise dosyadan silinen satırları göstermektedir. 

Geçiş bölgesi(stage area) ile depoda(repository) yer alan dosyalardaki farkları görmek istiyorsanız diff komutunu aşağıdaki gibi kullanmanız gerekiyor. 

 git diff --staged

Bu komutun çıktısı da yukarıdaki gibi başında + ve - işareti bulunan satırlardan oluşacaktır. Tabii ki dosyalarda değişiklik varsa. 

Dosya veya Klasör Silme

Bir dosya veya klasörü sildikten sonra önce add ile geçiş bölgesine, sonra commit ile de depoya gönderebilirsiniz. İkinci yöntem olarak ise terminalden bu dosya veya klasörleri silme yoluna gidebilirsiniz. 

git rm dosyaAdi

Dosyayı sildikten sonra add ve commit işlemleri yaparak değişikliği depoya bildirebilirsiniz. 

Klasör silmek için ise -r parametresi kullanmanız gerekiyor. R parametresi recursive ifadesinin kısaltılmış halidir. Kendi kendini yineleme, kendi kendini çağırma anlamına gelir. Recursive ifadesi hem Matematik hem de yazılımda kullanılan bir terimdir. Daha fazla bilgi için bu linki inceleyebilirsiniz.

git rm -r klasörAdi

Versiyon Değiştirme

Geldik Git sisteminin bizlere sunduğu en büyük hizmeti kullanmaya. Diyelim ki projemizi daha önce 3 kez commit ettik. Yani projemizin 3 kez kopyasını aldık. Daha sonra projemizde yanlışlıkla bazı dosyaları sildik veya bazı dosyaların kodlarında hatalı düzenlemeler yaptıktan sonra kaydettik. Bu durumda daha önce aldığımız yedeklere nasıl geçiş yaparız? İşte bu işlem için checkout komutu kullanılır. Yukarıda status komutunu açıklarken her commit işleminin kendine özel bir değeri olduğunu söylemiştim. İşte bu değer bize şimdi lazım olacak. 

git checkout commitDeğeri -- .

Bu komutu terminal ekranında çalıştırdığınız zaman projeniz, özel değerini yazdığınız commit işlemindeki haline geri dönecektir. Örneğin;

git checkout aab61adcb5e47a4325dbf3558573dcf045228c5c -- .

Her commit için üretilen özel değerin ilk 7 karakterini yazmanız da bu işlem için yeterli olacaktır. 

git checkout aab61ad -- .

Bir Dosyayı Geri Getirme 

Projenizin tamamını etkileyecek bir sürüm değişikliği yapmak yerine silinen bir dosyayı geri getirmek istiyorsanız checkout komutunu aşağıdaki gibi çalıştırabilirsiniz. 

git checkout commitDeğeri -- dosyaAdi

Örneğin;

git checkout aab61ad -- yazdir.py

Branch (Dalları) Listeleme

Bir projeye ait dalları listelemek için aşağıdaki komut kullanılır. 

git branch

Hem bilgisayarımızdaki hem de projemizi bağladığımız uzak sunucudaki (Github, Gitlab gibi) dalları listelemek içinse aşağıdaki komut kullanılır. 

git branch --all

Bu komutları çalıştırdığımız zaman aşağıdaki gibi bir çıktı ile karşılaşırız. 

  dal1
* master

Burada yeşil renkle belirtilen ve başında * işareti olan dal, üzerinde çalıştığımız branch'ı temsil eder. 

Branch (Dal) Ekleme

Bir proje için yeni bir branch eklemek istiyorsak aşağıdaki komutu kullanmamız gerekiyor. 

git branch dalAdi

Buradaki dalAdi yazan yere istediğiniz branch name yani dal adı yazabilirsiniz. 

Branch'a (Dal) Geçiş Yapma

Bir proje için oluşturulan yan dala yani branch'a geçiş yapmak istiyorsak aşağıdaki komutu kullanmamız gerekiyor. 

git checkout dal1

Burada dal1 yazan yere, geçiş yapmak istediğiniz branch name yani dal adını yazmanız gerekiyor. 

Branch'lar (Dallar) Arası Farklılıkları Listeleme

İki branc arasındaki farklılıkları listelemek için aşağıdaki komut yapısı kullanılır. 

git diff dalAdi1 dalAdi2

Yukarıdaki örneğimize göre bu ifadeyi şu şekilde kullanabiliriz.

git diff master dal1

Branch'lar (Dallar) Birleştirme

Bulunduğunuz branch ile başka bir branch'ı birleştirmek için aşağıdaki gibi bir komut yapısı kullanılır.

git merge dalAdi

Diyelim ki master branch'ındasınız ve dal1 ile master'ı birleştirmek istiyorsunuz. O zaman aşağıdaki komutu terminal satırında çalıştırmanız gerekmektedir. 

git merge dal1

Git kullanmak için önemli olan komutları anlatmaya çalıştığım. Diğer komutlar için Git yardım sayfasına bakabilirsiniz. 

Soru ve görüşlerinizi yorum olarak belirtebilirsiniz. 
Hayırlı çalışmalar dilerim.

30.01.2021
25712
git
Yorumlar
Bu içeriğe henüz yorum yapılmamıştır. İlk yorum yapan siz olun!
Yorum Yapın