Dalam proses menggunakan Git untuk pembangunan projek, kami sering menghadapi situasi di mana kami perlu memulihkan kepada versi tertentu. Walau bagaimanapun, jika anda telah menggunakan arahan git reset atau perintah git revert untuk melakukan rollback versi dan ingin memulihkan kepada versi sebelumnya, adakah ia masih boleh dilakukan? Artikel ini akan menganalisis isu ini secara terperinci untuk semua orang.
Pertama, mari kita fahami fungsi dua arahan git reset dan git revert.
arahan set semula git: Tetapkan semula HEAD cawangan semasa kepada komit yang ditentukan Anda boleh memilih sama ada untuk menetapkan semula kawasan pementasan dan direktori kerja kepada komit yang ditentukan.
Arahan Git revert: Buat penyerahan baharu untuk membuat asal penyerahan sebelumnya Anda boleh memilih untuk membuat asal komit yang ditentukan atau satu siri komit untuk menjana penyerahan baharu.
Jelas sekali, arahan set semula git akan kehilangan rekod penyerahan sebelumnya Walaupun log git digunakan untuk menyimpan sejarah penyerahan, ia tidak boleh dipulihkan kepada versi sebelumnya. Dan git revert boleh membatalkan penyerahan sebelumnya, tetapi rekod penyerahan baharu akan dijana, dan rekod penyerahan sebelumnya masih wujud.
Jadi, jika anda telah menggunakan arahan set semula git, adakah masih mungkin untuk mendapatkan semula versi sebelumnya? Jawapannya adalah mungkin, tetapi kaedah yang berbeza perlu dipilih mengikut situasi yang berbeza.
Senario 1: Jika tiada operasi lain dilakukan selepas penetapan semula (seperti memadamkan fail, mencipta fail baharu, dsb.), anda boleh memulihkannya melalui mekanisme "rujukan" Git.
1. Periksa dahulu titik HEAD sebelum anda menetapkan semula:
git reflog
2. Semak nilai SHA-1 komit sebelum anda menetapkan semula:
git show HEAD@{n}
Antaranya, n ialah komit ke-n sebelum anda menetapkan semula.
3. Tetapkan semula kepada komit sebelum anda menetapkan semula:
git reset HEAD@{n}
4 Pada ketika ini anda telah memulihkan kepada versi sebelum anda menetapkan semula, dan anda boleh mendapatkan semula fail yang anda perlukan:
git checkout HEAD -- FILENAME
FILENAME ialah fail yang anda perlukan untuk dapatkan semula.
Senario 2: Jika anda melakukan operasi lain selepas penetapan semula (seperti memadam fail, mencipta fail baharu, dll.), anda juga boleh menggunakan mekanisme "rujukan" untuk memulihkan, tetapi anda perlu menyemak yang sebelumnya penyerahan semula.
1. Semak nilai SHA-1 komit sebelum anda menetapkan semula:
git show HEAD@{n}
2. Lihat komit sebelum:
git checkout <commit-SHA>
Antaranya, 3. Dapatkan semula fail yang anda perlukan: Langkah selebihnya adalah sama seperti dalam Senario 1. Perlu diambil perhatian bahawa sama ada senario satu atau dua, anda perlu memulihkannya secepat mungkin selepas set semula git Jika tidak, jika komitmen lain dibuat, anda tidak akan dapat kembali ke versi sebelumnya. Oleh itu, sebelum menggunakan set semula git, anda harus mengesahkan operasi sebelum meneruskan. Ringkasnya, git ialah sistem kawalan versi yang sangat berkuasa Terdapat banyak operasi lain apabila menangani masalah versi, seperti cawangan, tag, dll. Anda perlu memilih penyelesaian yang sesuai mengikut situasi tertentu. Pada masa yang sama, anda harus membangunkan tabiat penggunaan Git yang baik dan sandaran tepat pada masanya dan komited untuk mengelakkan kerugian yang tidak perlu. Atas ialah kandungan terperinci Bolehkah ia dipulihkan selepas git dipulihkan kepada versi yang ditentukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!git checkout HEAD -- FILENAME