Git’teki Commit’ler Arasında Yapılmamış Değişiklikleri Nasıl Kontrol Ederim?

Giriş

Git, yazılım geliştirme sürecinde sıklıkla kullanılan, dağıtık bir versiyon kontrol sistemidir. Geliştiriciler, projelerinin her aşamasında kodlarını commit’ler aracılığıyla kaydeder ve sürüm geçmişini takip eder. Ancak, bazen commit’ler arasındaki değişiklikleri kontrol etmek, yapılmamış (veya henüz commit edilmemiş) değişiklikleri bulmak gerekebilir. Bu yazıda, Git’teki commit’ler arasında yapılmamış değişiklikleri nasıl kontrol edebileceğinizi adım adım anlatacağız.

Git’teki Yapılmamış Değişiklikler Nedir?

Git’teki yapılmamış değişiklikler, genellikle çalışma dizininde ya da staging alanında (yani git add komutuyla eklenmemiş değişiklikler) bulunur. Bir commit, bu değişikliklerin bir snapshot’ını alır ve geçmişe kaydeder. Ancak bazen geliştirdiğiniz bir özelliği henüz commit etmeden önce, ne gibi değişikliklerin yapıldığını görmek isteyebilirsiniz.

Yapılmamış değişiklikler, aynı zamanda hâlâ lokal bilgisayarınızda bulunan ancak commit edilmemiş dosyalar olabilir. Bu değişiklikleri izlemek, hata ayıklama ve kodunuzu düzenli tutma açısından önemlidir.

Git ile Yapılmamış Değişiklikleri Kontrol Etme

Git’teki yapılmamış değişiklikleri kontrol etmenin birkaç farklı yolu vardır. Aşağıda, en yaygın kullanılan komutlar ve yöntemler sırasıyla açıklanmıştır:

1. git status Komutu

En basit yöntemlerden biri, git status komutunu kullanmaktır. Bu komut, çalışma dizininde yapılmış ancak commit edilmemiş değişiklikleri listeler. Aynı zamanda, staging alanında bulunan değişiklikler hakkında da bilgi verir.

git status

Örnek çıktı:

On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add ..." to update what will be committed)
  (use "git restore ..." to discard changes in working directory)
        modified:   index.html
        deleted:    style.css

Untracked files:
  (use "git add ..." to include in what will be committed)
        new_file.js

Bu çıktıda, index.html dosyasında yapılan değişiklikler henüz staging alanına eklenmemiştir, style.css dosyası ise silinmiştir. Ayrıca, new_file.js adlı bir dosya da daha önce commit edilmemiş bir dosya olarak gözükmektedir.

2. git diff Komutu

Commit edilmemiş değişiklikleri daha detaylı incelemek için git diff komutunu kullanabilirsiniz. Bu komut, dosya içindeki farkları gösterir. Yani, dosyada ne gibi satır değişiklikleri yapıldığını görmenizi sağlar.

git diff

Örnek çıktı:

diff --git a/index.html b/index.html
index f3a7ab7..a7b84f7 100644
--- a/index.html
+++ b/index.html
@@ -1,3 +1,3 @@
 
-  
+  

Git Changes

- +

Bu çıktı, index.html dosyasındaki değişiklikleri satır satır gösterir. Burada, <body> etiketi değiştirilmiş ve yerine <div> etiketi eklenmiştir.

3. git diff --staged Komutu

Staging alanına eklenmiş fakat commit edilmemiş değişiklikleri görmek için git diff --staged komutunu kullanabilirsiniz. Bu, git add komutu ile eklediğiniz değişikliklerin commit edilmeden önce nasıl göründüğünü anlamanızı sağlar.

git diff --staged

Örnek çıktı:

diff --git a/index.html b/index.html
index f3a7ab7..a7b84f7 100644
--- a/index.html
+++ b/index.html
@@ -1,3 +1,3 @@
 
-  
+  

Git Changes

- +

Bu çıktı, git add komutu ile staging alanına eklenmiş olan index.html dosyasındaki değişiklikleri gösterir. Henüz commit edilmemiştir.

4. git log ve git log --stat Komutları

Commit’ler arasındaki farkları görmek için git log komutunu kullanabilirsiniz. Eğer her bir commit’in yaptığı değişiklikleri görmek istiyorsanız, git log --stat komutunu kullanarak her commit’teki dosya değişikliklerinin kısa bir özetini alabilirsiniz.

git log --stat

Örnek çıktı:

commit f3a7ab7e3d9c8a5d18b9d9087b6a2bdb44ad5673 (HEAD -> master, origin/master)
Author: User 
Date:   Thu Jan 2 12:34:56 2025 +0300

    Updated index.html with new content

 index.html |  2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Bu komut, son commit’in index.html dosyasında değişiklik yaptığını ve bu değişikliklerin bir satır ekleme ve bir satır silme içerdiğini gösteriyor.

Sonuç

Git, yazılım geliştirme sürecinde kodun takibini yapmayı oldukça kolaylaştırır. Yapılmamış değişiklikleri kontrol etmek, projenizin ilerleyişini izlemek ve kodunuzun stabilitesini sağlamak açısından oldukça önemlidir. git status, git diff, git diff --staged ve git log --stat komutları, bu değişiklikleri takip etmeniz için size güçlü araçlar sunar.

Bu araçları kullanarak, kodunuzdaki değişiklikleri kolayca kontrol edebilir ve hataları daha hızlı bir şekilde tespit edebilirsiniz. Git ile sürüm kontrolünü etkili bir şekilde yönetmek, projelerinizin başarısı için kritik öneme sahiptir.