CodeBlanks Logo Icon CodeBlanks

git revert

git revert ile geriye dönük commit oluşturmayı öğrenirsin.

git revert ile güvenli geri alma

git revert komutu, daha önce yapılmış bir commit'in getirdiği değişiklikleri tam tersine çeviren yepyeni bir commit oluşturur. Geçmişi silmek veya yeniden yazmak yerine, yapılan işlemin zıttını ileriye doğru yeni bir kayıt olarak ekler. Bu sayede projenin tarihsel akışı bozulmaz ve ekip depolarıyla çakışma yaşanmaz.

# HEAD commit'ini tersine cevir:
git revert HEAD

Özellikle başkalarıyla paylaşılan ortak dallarda hataları düzeltmenin en güvenli yolu budur.

Commit düzenleyicisini atlama: --no-edit

Normalde git revert çalıştığında Git otomatik olarak bir commit mesajı hazırlar ve terminal düzenleyicisini açar. Düzenleyici açılmadan varsayılan revert mesajını doğrudan onaylamak için --no-edit bayrağı eklenir. Değişiklikleri hemen commit etmek istemeyip sahneye almak istersen -n seçeneği kullanılır.

git revert --no-edit HEAD
git revert -n HEAD

--no-edit bayrağı özellikle betiklerde ve hızlı düzeltmelerde büyük kolaylık sağlar.

Uygulama Son commit'i revert ile geri al

Son commit'i git revert --no-edit -q HEAD komutuyla geri al ve ardından cat app.py ile dosyanın ilk haline döndüğünü ekrana yazdır.

Başlangıç kodu

terminal
git init -q -b main
git config user.name "Bora"
git config user.email "bora@example.com"
echo "v1" > app.py
git add app.py
git commit -qm "v1 hazir"
echo "hatali kod" >> app.py
git add app.py
git commit -qm "Hatali ekleme"

# Son commit'i revert et ve app.py icerigini bas

Örnek çözüm

terminal
git init -q -b main
git config user.name "Bora"
git config user.email "bora@example.com"
echo "v1" > app.py
git add app.py
git commit -qm "v1 hazir"
echo "hatali kod" >> app.py
git add app.py
git commit -qm "Hatali ekleme"

git revert --no-edit -q HEAD
cat app.py

Beklenen çıktı

v1

Soru ve cevaplar

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

1 git revert HEAD komutu çalıştırıldığında Git ne yapar?

  • HEAD commit'ini depodan kalıcı olarak siler ve yok eder
  • HEAD commit'inin değişikliklerini tersine çeviren yeni bir commit oluşturur Doğru cevap
  • Çalışma alanındaki tüm dosyaları staging area'ya taşır
  • Son commit'in sadece yazar adını ve tarihini günceller

Açıklama: git revert, hedef commit'in tersi olan değişiklikleri içeren yeni bir commit üreterek geçmişi güvenli tutar.

2 Varsayılan revert mesajını doğrudan onayla

Soru
git revert ____ HEAD
Cevap
git revert --no-edit HEAD

Açıklama: --no-edit bayrağı, metin editörünü açmadan Git'in ürettiği varsayılan revert mesajını doğrudan commit eder.

3 git revert temelleri

Kavram Anlamı
git revert Tersine çeviren yeni commit üretir
Ters commit Eklenenleri siler, silinenleri ekler
--no-edit Varsayılan mesajı doğrudan onaylar
-n Tersine çevirir ama commit etmez

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ışı