Git ile bir dosyayı sildim ve ardından taahhüt ettim, bu nedenle dosya artık çalışma kopyamda değil. O dosyanın içeriğine bakmak ama aslında onu geri yüklemek istemiyorum. Bunu nasıl yapabilirim?
Git ile bir dosyayı sildim ve ardından taahhüt ettim, bu nedenle dosya artık çalışma kopyamda değil. O dosyanın içeriğine bakmak ama aslında onu geri yüklemek istemiyorum. Bunu nasıl yapabilirim?
Yanıtlar:
git show HEAD^:path/to/file
Açık bir kesinleştirme tanımlayıcısı kullanabilir veya HEAD~ndaha eski sürümleri görmek için ya da siz onu sildikten sonra birden fazla kaydetme olmuşsa kullanabilirsiniz.
fatal: Invalid object name 'HEAD^'.(sadece "İlk taahhüdümün" olduğunu belirtmek zorundayım)
Bu, bir süre önce sildiğiniz bir dosyaysa ve bir revizyon aramak istemiyorsanız , şunu kullanabilirsiniz (dosya foobu örnekte adlandırılmıştır ; tam yolu kullanabilirsiniz):
git show $(git rev-list --max-count=1 --all -- foo)^:foo
rev-listHer şeyden revizyonlar için çağırma görünüyor fooama sadece listelerinden biri. rev-listTers kronolojik sıradaki listelerden bu yana , listelediği şey, değişen son revizyondur foo, bu da silinen kayıt olacaktır foo. (Bu, git'in silinmiş bir dosyanın değiştirilmesine ve yine de silinmesine izin vermediği varsayımına dayanır .) Artık orada olmadığı için olduğu gibirev-list dönen düzeltmeyi kullanamazsınız . Dosyanın son revizyon dolayısıyla içeren kendinden öncekini biri için sormak zorunda in .foo^git show
**/fooYolu bilmiyorsanız yazabilirsiniz (bu, rev-list komutu için çalışacak, ancak show komutu için çalışmayacaktır. Ancak rev-list komutundaki commit ile yolu bulabilirsiniz).
Tam yolu hatırlamayabileceğiniz için, sha1'i git log'dan alabilir ve ardından basitçe yayınlayabilirsiniz.
git cat-file -p <sha1>
git whatchanged --no-abbrevgit (veya svn) günlüğüne benzer bir çıktı verir.
path/to/fileprojenin üst kısmından tam yol olduğuna dikkat edin (deponun üst dizini).