git reset
- Git kursu
- Orta seviye
- Ders 41/82
- 4 dk
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~1Bu 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.txtBö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
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
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 -sBeklenen çı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
git reset ____
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 |