git revert
- Git kursu
- Orta seviye
- Ders 37/82
- 4 dk
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
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
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.pyBeklenen çı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
git revert ____ HEAD
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 |