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?
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?
Jawaban:
git show HEAD^:path/to/file
Anda dapat menggunakan pengenal komit eksplisit atau HEAD~nuntuk melihat versi lama atau jika sudah ada lebih dari satu komit sejak Anda menghapusnya.
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 foodalam contoh ini; Anda dapat menggunakan jalur lengkap):
git show $(git rev-list --max-count=1 --all -- foo)^:foo
The rev-listDoa terlihat untuk semua revisi footetapi hanya daftar satu. Karena rev-listdaftar dalam urutan kronologis terbalik, maka yang didaftar adalah revisi terakhir yang berubah foo, yang akan menjadi komit yang dihapus foo. (Ini didasarkan pada asumsi bahwa git tidak mengizinkan file yang dihapus diubah dan tetap terhapus.) Anda tidak bisa begitu saja menggunakan revisi yang rev-listkembali apa adanya karena sudah footidak ada lagi. Anda harus meminta yang tepat sebelum itu yang berisi revisi terakhir dari file tersebut, maka ^in git show.
**/foojika 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
git cat-file -p <sha1>
git whatchanged --no-abbrevyang memberikan keluaran yang mirip dengan git (atau svn) log.
path/to/filejalur lengkap dari atas proyek (direktori atas repositori).