Saya telah menghapus file dengan Git dan kemudian berkomitmen, jadi file tersebut tidak lagi ada dalam copy pekerjaan saya. Saya ingin melihat konten file itu, tetapi tidak benar-benar memulihkannya. Bagaimana saya bisa melakukan ini?
105
path/to/file
jalur lengkap dari atas proyek (direktori atas repositori).fatal: Invalid object name 'HEAD^'.
(saya harus menyebutkan, bahwa saya hanya memiliki "Jika ini adalah file yang telah Anda hapus beberapa waktu lalu dan tidak ingin mencari revisi , Anda dapat menggunakan (nama file
foo
dalam contoh ini; Anda dapat menggunakan jalur lengkap):The
rev-list
Doa terlihat untuk semua revisifoo
tetapi hanya daftar satu. Karenarev-list
daftar dalam urutan kronologis terbalik, maka yang didaftar adalah revisi terakhir yang berubahfoo
, yang akan menjadi komit yang dihapusfoo
. (Ini didasarkan pada asumsi bahwa git tidak mengizinkan file yang dihapus diubah dan tetap terhapus.) Anda tidak bisa begitu saja menggunakan revisi yangrev-list
kembali apa adanya karena sudahfoo
tidak ada lagi. Anda harus meminta yang tepat sebelum itu yang berisi revisi terakhir dari file tersebut, maka^
ingit show
.sumber
**/foo
jika Anda tidak mengetahui jalurnya (ini akan bekerja untuk perintah rev-list tetapi bukan perintah show. Namun dengan komit dari perintah rev-list Anda kemudian dapat menemukan jalurnya).Karena Anda mungkin tidak mengingat jalur yang tepat, Anda bisa mendapatkan sha1 dari git log, lalu Anda dapat menerbitkannya
sumber
git whatchanged --no-abbrev
yang memberikan keluaran yang mirip dengan git (atau svn) log.