Git
Belirli commit geri
Belirli bir commit'i geri almayı öğrenirsin.
Geçmişteki belirli bir commit'i revert etme
git revert, yalnızca en son commit'i (HEAD) değil, geçmişteki herhangi bir commit'i de geri alabilir. Arada başka commit'ler yapılmış olsa bile Git, yalnızca hedef commit'in getirdiği satırları tespit edip onların tersini uygular. Hedef commit'in referansını veya hash değerini komuta parametre olarak verirsin.
# Gecmisteki belirli bir commit'i geri al:
git revert --no-edit 7b2a9c1
git revert --no-edit HEAD~1
Bu seçici yaklaşım, aradaki faydalı geliştirmeleri kaybetmeden eski bir hatayı ayıklamanı sağlar.
Revert sırasında çakışmalar
Geri alınmak istenen commit'in değiştirdiği satırlar sonraki commit'lerde tekrar düzenlendiyse bir çakışma (conflict) ortaya çıkabilir. Çakışma çıktığında dosyaları düzenleyip git add ile sahneledikten sonra git revert --continue komutuyla işlemi tamamlarsın. Vazgeçmek istersen git revert --abort komutuyla depoyu geri alabilirsin.
# Cakismayi cozup devam et:
git add dosya.txt
git revert --continue
# Islemi tamamen iptal et:
git revert --abort
Bu esneklik, karmaşık geri alma operasyonlarını güvenle yönetmeni sağlar.
Uygulama Geçmişteki commit'i geri al
HEAD~1 commit'ini git revert --no-edit -q HEAD~1 komutuyla geri al ve son commit başlığını git log -1 --format="%s" ile ekrana yazdır.
Örnek çözümü göster
git init -q -b main
git config user.name "Bahar"
git config user.email "bahar@example.com"
echo "a" > a.txt
git add a.txt
git commit -qm "A eklendi"
echo "b" > b.txt
git add b.txt
git commit -qm "B eklendi"
echo "c" > c.txt
git add c.txt
git commit -qm "C eklendi"
git revert --no-edit -q HEAD~1
git log -1 --format="%s"
Kendini test et
-
Aradan birkaç commit geçtikten sonra geçmişteki belirli bir commit'i geri almak istediğinde ne yaparsın?
- İlgili commit'in hash değerini git revert komutuna parametre verirsin
- .git klasöründeki geçmiş commit dosyasını elle silersin
- git stash drop komutuyla geçmişteki commit'i yığından silersin
- Depoyu git reset --hard ile o commit'e sıfırlayıp aradaki işleri silersin
Cevabı göster
İlgili commit'in hash değerini git revert komutuna parametre verirsin — git revert <hash>, aradaki diğer commit'lere dokunmadan yalnızca belirtilen commit'in değişikliklerini tersine çeviren yeni bir commit üretir.
-
Revert işleminden vazgeç
git revert ____
Cevabı göster
git revert --abort
-
Commit geri alma komutları
- git revert <hash>
- Belirtilen commit'i tersine çevirir
- --continue
- Çakışma çözülünce revert'i tamamlar
- --abort
- Revert işlemini iptal eder
- Seçici geri alma
- Aradaki commit'lere dokunmaz
Sıradaki ders: Özet - Revert