Hataları Geri Alıyoruz: restore, reset, revert — Doğru ve Tehlikeli Kullanımları
Mülakatlarda ve gerçek iş hayatında en çok talep edilen konulardan biri, yapılmış olan işlemleri nasıl geri alacağımızdır. Farklı 'derinliklerde' geri alma sağlayan üç aracı inceleyecek ve en önemli noktaya odaklanacağız: reset --hard'ın ekip çalışmasını nasıl mahvettiğini ve revert'ın güvenli bir alternatif olduğunu somut senaryolarla göstereceğiz. İyi ve kötü kararlar — gerçek sonuçlarıyla birlikte.
- Değişiklikleri her aşamada (çalışma dizini, indeks ve commit geçmişi) güvenle geri alabileceksiniz.
- Reset ve revert arasındaki temel farkı anlayacak ve hangi durumda hangisinin uygun olduğunu bileceksiniz.
- Ekip deposunda değişiklik geri alırken yeni başlayanların sık yaptığı tipik hatalardan kaçınmayı öğreneceksiniz.
Phần đầu bài giảng
Git restore: Dosyalar İçin Geri Al Butonu
- Git restore — commit'lenmemiş değişiklikleri geri alır
- Düzenleyicideki 'geri al' butonu gibi çalışır
- Güvenlidir — commit geçmişini değiştirmez
- Dosyaları son kaydedilen hallerine döndürür
Diyelim ki bir dosyayı hatalı bir şekilde kaydettiniz ve her şeyi eski haline döndürmek istiyorsunuz. Git restore sihirli bir geri al butonu gibi çalışır — dosyaları son kaydedilen hallerine döndürür. Diğer geri alma komutlarının aksine restore, yalnızca commit'lenmemiş değişikliklerle çalışır ve proje geçmişiniz için tamamen güvenlidir. Hızlı bir şekilde düzeltme yapmanız gerektiğinde başvurmanız gereken ilk araçtır.
Çalışma Dizinindeki Değişiklikleri Geri Alma
- git restore file.txt — dosyayı son commite geri döndürür
- Çalışma dizinindeki tüm değişiklikleri geri alır
- Güvenlidir — değişiklikler düzenleyici aracılığıyla geri getirilebilir
- Geri yüklemeden önce git status ile durumu kontrol edin
Farz edin ki yarım saat boyunca bir konfigürasyon dosyasını düzenlediniz ancak yanlış yönde ilerlediğinizi fark ettiniz. Her değişikliği manuel olarak geri almak yerine, git restore config.yml komutunu çalıştırın. Dosya anında son commit'in durumuna geri döner. Bu, dosyayı kaydetmeden kapatmak gibidir, ancak çalışan bir sürüme geri döndüğünüzün garantisiyle.
# Dosyayı geri yükleme örneği
$ echo "Hatalı değişiklikler" > main.py
$ git status
$ git restore main.py
$ cat main.py
$ git status
Dosyayı İndeks'ten Çıkarma
- git restore --staged file.txt — dosyayı indeksten çıkarır
- Değişiklikleri çalışma dizininde korur
- Dikkat: --staged olmadan değişiklikler kaybolur
- Her zaman işlem öncesi git status ile kontrol edin
Sık yapılan hatalardan biri, indekse yanlışlıkla gereksiz bir dosya eklemektir. Örneğin, git add . yaptınız ve geçici bir ayar dosyasını indekse eklediniz. git restore --staged settings.tmp komutu, bu dosyayı indeksten çıkarır ancak çalışma dizinindeki değişiklikleri korur. --staged olmadan, yaptığınız değişiklikleri kaybedersiniz, bu yüzden restore komutunu çalıştırmadan önce git status ile durumu kontrol edin. Artık commit öncesi değişiklikleri nasıl geri alacağınızı biliyorsunuz. Peki ya hata commit geçmişine girdiyse? İşte burada git reset devreye giriyor.
# Dosyayı yanlışlıkla indekse ekledik
$ git add config.tmp
$ git status
# Değişiklikleri koruyarak indeksten çıkarıyoruz
$ git restore --staged config.tmp
$ git status
# Dosyanın çalışma dizininde kaldığını kontrol ediyoruz
$ ls -la config.tmp
Bài giảng đầy đủ dành cho thuê bao
Còn 24 slide nữa trong phiên bản đầy đủ.
Video, toàn bộ slide, ghi chú, bài kiểm tra, gia sư AI và phỏng vấn sẽ mở sau khi đăng nhập và đăng ký thuê bao.
Đăng nhập hoặc đăng ký Đăng ký thuê baoNội dung bài giảng
- Git restore: Dosyalar İçin Geri Al Butonu
- Çalışma Dizinindeki Değişiklikleri Geri Alma
- Dosyayı İndeks'ten Çıkarma
- Git reset: Geçmişi Geri Sarma Nasıl Çalışır?
- Güvenli reset --soft: Değişiklikler İndekste Kalır
- Standart reset --mixed: Değişiklikler Çalışma Dizininde
- Tehlikeli reset --hard: Kalıcı Silme
- Reset: Üç Mod, Tek Komut
- git reset --soft: Geçmişi Güvenle Yeniden Yazma
- --mixed ve --hard Ne Zaman Kullanılır?
- Kontrol Listesi: Hangi Reset'i Seçmeli?
- Neden Hatayı Basitçe Silemiyoruz?
- git revert Pratikte Nasıl Çalışır?
- Birden Fazla Commit'i Tek Seferde Geri Alma
- Reset: Geçmişi Yerel Olarak Yeniden Yazma
- Revert: Değişiklikleri Güvenle Geri Alma
- Push'ta Ne Olur: Reset vs Revert
- Reset --hard Neden Tehlikelidir?
- Değişiklik Kaybı Örneği
- Veriler Nasıl Kurtarılır?
- Ortak Branch'te Geri Almanın Tehlikeleri
- Revert ile Güvenli Geri Alma
- Doğru İşlem Sırası
- Ne Zaman Ne Kullanılır: restore, reset veya revert
- Kişisel ve Ortak Geçmişle Çalışma Kuralları
- Hata Anında Adım Adım Talimat
- Özet ve Görev: Geri Almanın Efendisi
Bài viết liên quan đến bài học này
- Lệnh Git: bảng tra cứu với ví dụ dùng hằng ngày
- git checkout, switch và restore: khi nào dùng cái nào
- git reset và git revert: cách hoàn tác commit mà không phá lịch sử nhóm
- git reflog: cách khôi phục commit và nhánh đã mất
- Git và GitHub: khác nhau thế nào và liên hệ ra sao
Tất cả bài giảng của khóa học
- Giriş: Sıfırdan Güvenilir Geliştiriciye Git
- Git Neden Gereklidir — ve Neden İşe Alırken Onsuz Yapamıyorlar
- Kurulum ve Yapılandırma: Git'i İlk Çalıştırmaya Hazırlama
- İlk Depo: init, add, commit ve İndeksin Sihri
- Geçmişi Okumak: log, diff, show ve Geçmişte Gezinti
- Dallar: Kodunuzun Paralel Gerçekliği
- Hataları Geri Alıyoruz: restore, reset, revert — Doğru ve Tehlikeli Kullanımları
- GitHub ve Uzaktaki Depolar: Kodunuz Bulutta
- Takım Çalışması: Fork'lar, Özellik Dalları ve Pull Request'ler
- Birleştirme Çakışmaları: Panik Yapmayın — Anlayın ve Çözün
- Gerçek Ekiplerde Git Süreçleri: Hangi İş Akışı Seçilmeli
- Gelişmiş Araçlar: rebase, stash, cherry-pick ve etiketler
- Final Proje: Gerçek Ekip Çalışmasını Simüle Ediyoruz