Git’teki Mevcut Branch Nasıl Eski Bir Commit’e Geri Döndürülür?

Git, yazılım geliştiricilerinin projelerinde en çok tercih ettiği sürüm kontrol sistemlerinden biridir. Git sayesinde, yazılım projelerindeki her değişiklik kaydedilir ve bu değişiklikler üzerinde kolayca işlem yapılabilir. Bazen, bir proje üzerinde çalışırken yanlış bir değişiklik yapabiliriz ve bu durumda mevcut Git branch’ını eski bir commit’e geri döndürmek gerekebilir. Bu makalede, Git’teki mevcut branch’in nasıl eski bir commit’e geri döndürüleceği konusunda adım adım bir rehber sunacağız.

Git Nedir ve Neden Kullanılır?

Git, yazılım geliştirme sürecinde değişiklikleri takip etmek için kullanılan dağıtık bir sürüm kontrol sistemidir. Git ile her dosya değişikliği ve tüm proje geçmişi saklanır, böylece bir hata yapıldığında kolayca geri dönülebilir. Git, özellikle ekip halinde yapılan projelerde önemli bir rol oynar ve işbirliği yapmayı kolaylaştırır.

Eski Bir Commit’e Geri Dönme Neden Gereklidir?

Yazılım geliştirme sürecinde, bazen yanlış commit’ler yapılabilir. Bu commit’ler projede sorunlara yol açabilir. Git’teki mevcut branch’in eski bir commit’e geri döndürülmesi, şu gibi durumlarda faydalı olabilir:

  • Yanlış yapılan bir commit geri alınmak istendiğinde
  • Yeni yapılan değişikliklerin projeyi bozması durumunda
  • Projede bir özellik eklerken test edilmeden yapılan değişikliklerin geri alınması gerektiğinde

Git’teki Mevcut Branch Nasıl Eski Bir Commit’e Geri Döndürülür?

Git’teki mevcut branch’i eski bir commit’e geri döndürmek için birkaç yöntem vardır. Bu yöntemlerin her biri, belirli bir duruma göre farklılık gösterebilir. Aşağıda bu yöntemleri detaylı şekilde açıklayacağız.

1. git reset Komutu Kullanarak Geri Dönme

Git’teki bir branch’i eski bir commit’e döndürmenin en yaygın yolu git reset komutunu kullanmaktır. git reset, mevcut branch’inizi belirtilen bir commit’e geri döndürmenizi sağlar. Bu komut, hard, soft ve mixed olmak üzere üç farklı modda çalışabilir.

1.1. git reset --hard Komutu

git reset --hard komutu, hem çalışma dizininizdeki dosyaları hem de index’i (staging area) belirtilen commit’e sıfırlar. Bu komut, geri alabileceğiniz bir işlem değildir, bu nedenle dikkatli kullanılmalıdır. Bu komut ile geri dönülen commit, git log komutuyla geçmişteki commit’ler arasında görünmez.

git reset --hard 

1.2. git reset --soft Komutu

git reset --soft komutu, sadece commit geçmişini geri alır, ancak dosyalarınız ve index üzerinde herhangi bir değişiklik yapmaz. Bu, dosyalarınızı staging area’ya eklemenize imkan tanır ve geri döndüğünüz commit’ten sonraki değişikliklerinizi yeniden gözden geçirebilirsiniz.

git reset --soft 

1.3. git reset --mixed Komutu

git reset --mixed komutu, commit geçmişini geri alırken çalışma dizininizi (working directory) değiştirir, ancak index üzerinde değişiklik yapmaz. Bu, yapılan değişiklikleri saklarken, commit geçmişinizi belirli bir noktaya getirmenize olanak tanır.

git reset --mixed 

2. git checkout Komutunu Kullanarak Geri Dönme

git checkout komutu, eski bir commit’e dönmek için bir başka kullanışlı Git komutudur. Ancak, bu komut çalışma dizininizi geçici olarak eski bir commit’e yönlendirir ve genellikle yeni bir branch oluşturulması ile birlikte kullanılır. Aşağıdaki adımlarla eski bir commit’e dönebilirsiniz:

git checkout 

Bu komut, belirtilen commit’e geçiş yapar. Eğer yeni bir branch oluşturmak istiyorsanız, şu şekilde devam edebilirsiniz:

git checkout -b  

3. git revert Komutunu Kullanarak Geri Dönme

Git’teki mevcut branch’i eski bir commit’e geri döndürmek için bir diğer seçenek ise git revert komutudur. Bu komut, belirli bir commit’in etkisini tersine çeviren yeni bir commit oluşturur. Bu yöntem, reset komutunun