CodeBlanks Logo Icon CodeBlanks

git reset

git reset ile HEAD'i hareket ettirmeyi öğrenirsin.

git reset ile HEAD'i taşıma

git reset, mevcut dalın ve HEAD işaretçisinin gösterdiği commit'i geriye veya belirli bir commit'e taşımak için kullanılır. Bir commit yapıldığında Git dal işaretçisini ileri taşır; reset komutu ise bu işaretçiyi geriye çekerek geçmişi yeniden konumlandırır. Böylece son yapılan bir veya daha fazla commit yerel geçmişten geri alınabilir.

# HEAD'i bir onceki commit'e tasi:
git reset HEAD~1

Bu işlem yerel depoda yanlış giden bir adımı baştan düzeltmek için en temel yöntemdir.

Dosyaları sahneden çıkarma: git reset <dosya>

git reset, parametre olarak bir dosya yolu aldığında HEAD işaretçisini hareket ettirmez; yalnızca o dosyayı sahneden (staging area) çıkarır. Bu işlem git add komutunun tam tersidir ve çalışma dizinindeki dosya içeriğine kesinlikle dokunmaz. Yanlışlıkla sahneye eklenen bir dosyayı güvenle geri alabilirsin.

git add dosya.txt
# Sahneden geri cikar (unstage):
git reset dosya.txt

Böylece çalışma alanındaki kodları kaybetmeden hangi dosyaların commit edileceğini yeniden düzenlersin.

Uygulama Dosyayı reset ile sahneden çıkar

Sahnelenmiş app.py dosyasını git reset -q app.py ile sahneden çıkar ve git status -s ile kısa durumu ekrana yazdır.

Başlangıç kodu

terminal
git init -q -b main
git config user.name "Ali"
git config user.email "ali@example.com"
echo "v1" > app.py
git add app.py
git commit -qm "Ilk commit"
echo "yeni kod" > app.py
git add app.py

# app.py dosyasini sahneden cikar ve kisa durumu bas

Örnek çözüm

terminal
git init -q -b main
git config user.name "Ali"
git config user.email "ali@example.com"
echo "v1" > app.py
git add app.py
git commit -qm "Ilk commit"
echo "yeni kod" > app.py
git add app.py

git reset -q app.py
git status -s

Beklenen çıktı

 M app.py

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 git reset komutunun temel işlevi nedir?

  • Uzak depodaki dalları yerel depoyla eşitlemek
  • HEAD ve mevcut dal işaretçisini belirtilen commit'e taşımak Doğru cevap
  • Sahnelenmiş dosyaları doğrudan uzak sunucuya göndermek
  • İki farklı dalı birleştiren yeni bir merge commit oluşturmak

Açıklama: git reset, HEAD ve üzerinde bulunulan dal işaretçisini geçmişteki belirli bir commit hedefine geri taşır.

2 Dosyayı sahneden geri çıkar

Soru
git reset ____
Cevap
git reset README.md

Açıklama: git reset <dosya> komutu, belirtilen dosyadaki değişiklikleri çalışma alanında koruyarak sahneden çıkarır.

3 git reset temelleri

Kavram Anlamı
git reset <commit> HEAD'i belirtilen commit'e taşır
git reset <dosya> Dosyayı sahneden geri çıkarır
HEAD hareketi Dal işaretçisini geriye çeker
Unstage işlemi Çalışma alanındaki koda dokunmaz

Orta seviye bölümündeki tüm dersler

20 Orta seviye finali

  1. Dal yönetimi
  2. Rebase
  3. Çatışma
  4. PR akışı