Menu
Coddy logo textTech

Git Reflog

Son güncelleme

git reflog, HEAD'in işaret ettiği her yeri kaydeder - her commit, checkout, reset ve rebase. Git bu commit'leri dallarınızdan çıktıktan sonra bile bir süre sakladığı için reflog sizin güvenlik ağınızdır: bir reset --hard, kötü bir rebase veya silinen bir dalın yok ettiğini sandığınız çalışmayı bulmanızı ve kurtarmanızı sağlar.

Bunları terminal playground'da deneyin - tarayıcınızda gerçek bir kabuk, kurulacak hiçbir şey yok.

git reflog HEAD'in bulunduğu her konumu kaydeder; böylece reset ya da rebase ile kaybolan bir commit bulunup geri getirilebilir.

Söz dizimi

CommandWhat it does
git reflogHEAD'in son konumlarını hash'leriyle birlikte gösterir
git reflog show <branch>Bir dalın reflog'unu gösterir
git reset --hard HEAD@{1}HEAD'i önceki bir konuma geri götürür
git branch recovered <hash>Kaybolan bir commit'te bir dalı yeniden oluşturur

Bir hatadan sonra kurtarma

Reset öncesindeki commit'i bularak hatalı bir reset'i geri alın.

StepCommandResult
1git reflogReset öncesindeki commit'i bulun
2git reset --hard HEAD@{1}Dalınızı ona geri yükleyin

git reflog SSS

git reflog nedir?
Yerel deponuzda HEAD'in (ve her dal ucunun) işaret ettiği tüm yerlerin bir günlüğüdür - commit'ler, checkout'lar, reset'ler, merge'ler ve rebase'lerin ardından. Commit soy zincirini takip eden git log'un aksine reflog, eylemlerinizin kronolojik bir kaydıdır ve onu kurtarma için kullanışlı kılan da budur.
git reset --hard sonrası bir commit'i nasıl kurtarırım?
Reset'ten önce bulunduğunuz commit'in girdisini bulmak için git reflog çalıştırın (HEAD@{1} gibi bir şey), ardından ona dönmek için git reset --hard <that-hash> (veya HEAD@{1}) komutunu kullanın. Commit aslında silinmedi - sadece onu işaret eden bir dalı kalmadı ve reflog hâlâ hash'ini biliyor.
Silinen bir dalı nasıl geri getiririm?
Dalın son commit'ini git reflog içinde bulun, ardından dalı orada yeniden oluşturun: git branch <name> <hash>. Silme işlemi yeni olduğu sürece (Git'in reflog geçerlilik süresi içinde, genellikle haftalar), commit'lere bu şekilde hâlâ ulaşılabilir.
git reflog klonlar arasında çalışır mı?
Hayır - reflog deponuza özeldir ve push edilmez veya klonlanmaz. Yalnızca kendi makinenizdeki eylemleri kaydeder. Bu yüzden yerel hataları kurtarabilir ancak yalnızca farklı bir klonda var olan bir şeyi kurtaramaz.
Bunu çevrimiçi olarak deneyebilir miyim?
Evet. git reflog'u tarayıcınızda gerçek bir kabukta çalıştırmak için terminal playground'ı açın - kurulacak hiçbir şey yok. Coddy'nin ücretsiz etkileşimli Git kursu da değişiklikleri geri alma ve kurtarma konusunu adım adım ele alır.
Coddy programming languages illustration

Coddy ile Git öğren

BAŞLA