2016-07-10 34 views
5

Git git stash taahhütlerini ararken, .git/log'u farkettim. logs altında yalnızca benzersiz dosyasıdır -.git/günlüğünün amacı nedir?

stash Anlamı
$ ls .git/logs/ 
HEAD  refs 
$ diff .git/refs/ .git/logs/refs/ | head -n3 
Common subdirectories: .git/refs/heads and .git/logs/refs/heads 
Common subdirectories: .git/refs/remotes and .git/logs/refs/remotes 
diff .git/refs/stash .git/logs/refs/stash 

: bulundu. Fakat bu klasörün mantığına ışık tutmuyor. Peki, .git/log'un amacı nedir ve neden yinelenen başvurular yinelenir?

cevap

1

günlükleri refs yapılan değişikliklerin Kayıtları Bu dizinde saklanır. Daha fazla bilgi için bkz. Git-update-ref 1. Bu dizin, GIT_COMMON_DIR $ olarak ayarlanmışsa ve bunun yerine "$ GIT_COMMON_DIR/logs" kullanıldığında göz ardı edilir.

Referans: gitrepository-layout

1

Bunlar, deponuzdaki çeşitli referansların geçmişte nereye işaret ettiğinin tarihini kaydeden "referanslar" dır.

git help reflog ve -g, --walk-reflogs belgelerine bakın git help log.

diff -r'u çalıştırmış olsaydınız, refs/ dosyalarının tümü tek bir işlem içerdiğinden ve logs/refs bir geçmiş dosyası içerdiğinden çok daha fazla fark görürsünüz. Genel olarak, refs/ dizin olduğunu görünümlü

Not, iyi bir yolu depoda hakemlerimizle aramaya. "Gevşek" olmanın yanı sıra, refs yalnızca packed-refs'da da olabilir ve refs/ dizininde karşılık gelen bir girdiye sahip olmayabilir. Git reflogs sakladığı

1

logs dizinidir. Reflog'lar, refs'larınızın zamanın önceki bazı noktalarında işaret ettiklerini gösterir. Reflogs, bir git commit --amend, git rebase, vb. Sonrasında bile orijinal kaydı saklar. Refresh, git pull düzinelerce belgede çekildikten sonra bile tek bir işlemi depolar. Referanslar, belirli işlemleri geri almayı kolaylaştırır.

reflogs sahip tüm refs ve Yakın geçmişte yaşadığınız tüm hakemlerimizle için varolmaya normaldir. git stash komutunu kullanarak bir seferde stash ref elde ettiniz. Artık bu ref'ye sahip olmasanız bile, reflog hatırlıyor. Bu, örneğin, yanlışlıkla bir dal silinmesini geri almanıza olanak tanır.