Cara mencari dan memulihkan fail yang dipadam dari sejarah git
- Pertama, gunakan log git--dff-filter = d --Marmary-
untuk mencari komit di mana fail itu dipadamkan. 2. Kemudian, sahkan fail itu ada dalam komit sebelumnya menggunakan pertunjukan git : atau git ls-tree -r <commit-hash> | grep <file-name>. 3. Pulihkan fail dengan checkout git ^- , kemudian panggung dan lakukan menggunakan git tambah dan git commit -m "memulihkan fail yang dipadam: ". 4. Sahkan pemulihan dengan menyemak fail dengan status LS dan git. 5. Untuk mengelakkan isu -isu masa depan, gunakan Git RM dan bukannya RM, semak semula perubahan dengan status Git dan Git Diff, dan tolak secara teratur ke repositori terpencil. Memulihkan fail yang dipadam dalam Git boleh dipercayai dan mudah apabila mengikuti langkah -langkah ini.
Sekiranya anda secara tidak sengaja memadamkan fail dalam projek Git anda dan menyedari bahawa anda masih memerlukannya, jangan panik -git menjejaki seluruh sejarah anda, jadi anda biasanya boleh memulihkannya dengan mudah. Berikut adalah cara mencari dan memulihkan fail yang dipadam dari sejarah Git.

1. Cari bila fail dipadamkan
Pertama, anda perlu mencari komit di mana fail itu dipadamkan. Gunakan git log
dengan pilihan --diff-filter=D
untuk menunjukkan hanya melakukan fail yang dipadam, kemudian ditapis dengan nama fail:
Log git--diff-filter = d--summary | Grep "Padam" -a 2 -B 2
Atau, jika anda mengetahui nama fail:

Log git--diff-filter = d--summary-<file-path>
Ini akan menunjukkan kepada anda komitmen di mana fail itu dikeluarkan. Output termasuk hash komit, pengarang, tarikh, dan butiran utama untuk langkah seterusnya.
Petua: Jika anda tidak pasti jalan yang tepat, gunakan
git log --all --oneline --full-history -- <file-name>
untuk mencari di semua cawangan dan sejarah.
2. Periksa sama ada fail wujud dalam komitmen sebelumnya
Sebaik sahaja anda mempunyai hash komit sebelum fail dipadam, anda boleh mengesahkan fail yang ada. Contohnya:
Git Show <Mommit-hash>: <file-path>
Ini memaparkan kandungan fail dari komit itu. Jika kelihatan betul, anda sudah bersedia untuk memulihkan.
Sebagai alternatif, untuk menyenaraikan fail dalam komit:
git ls-tree -r <commit-hash> | grep <file-name>
Ini membantu mengesahkan fail yang ada pada ketika itu.
3. Pulihkan fail yang dipadam
Terdapat beberapa cara untuk memulihkan fail, bergantung kepada keperluan anda.
Pilihan A: Pulihkan dari komit yang paling terkini sebelum penghapusan
Gunakan git checkout
untuk memulihkan fail dari komit tertentu:
Git Checkout <Commit-Hash>^-<file-path>
Nota:
^
bermaksud "ibu bapa komitmen itu" -ie, versi sebelum penghapusan. Sekiranya penghapusan itu dalam komitmen pertama sejarah fail, anda mungkin tidak memerlukan^
.
Selepas menjalankan ini, fail akan dipulihkan ke direktori kerja anda. Kemudian lakukan perubahan:
Git Tambah <file-path> git komit -m "memulihkan fail yang dipadam: <file-path>"
Pilihan B: Pulihkan dari cawangan tertentu atau keadaan terdahulu
Jika fail masih wujud di cawangan lain (misalnya, main
), anda boleh menariknya dari situ:
Git checkout utama-<file-path>
Ini menyalin fail dari cawangan main
ke cawangan semasa anda.
4. Semak semula pemulihan
Selepas memulihkan, sahkan fail itu kembali dan berfungsi seperti yang diharapkan:
ls <file-path> status git
Pastikan kandungannya betul dan lakukan pemulihan dengan segera untuk mengelakkan kehilangannya lagi.
Bonus: Mencegah penghapusan yang tidak disengajakan
Walaupun Git melindungi sejarah anda, pertimbangkan tabiat ini:
- Gunakan
git rm
dan bukannyarm
untuk memadam fail -ini memastikan Git menjejaki penghapusan. - Semak perubahan dengan
git status
dangit diff
sebelum melakukan. - Secara kerap menolak ke repositori jauh untuk melindungi sejarah.
Memulihkan fail yang dipadam dari sejarah git adalah mudah apabila anda mengetahui arahan yang betul. Kuncinya adalah mengenal pasti komitmen yang betul dan menggunakan git checkout
untuk membawa kembali fail. Dengan sedikit amalan, ia menjadi sifat kedua.
Pada asasnya, cari titik penghapusan, pergi satu langkah mundur, dan periksa fail.
Atas ialah kandungan terperinci Cara mencari dan memulihkan fail yang dipadam dari sejarah git. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Untuk membersihkan keseluruhan senarai stash dalam Git, tidak ada arahan terbina dalam langsung, tetapi ia boleh dilakukan dalam beberapa langkah. Pertama lari gitstashlist untuk melihat semua penyertaan stash semasa, dan kemudian gunakan gitstashdropstash@{n} untuk memadamkannya satu demi satu, atau gunakan gitreflogdelete-expire-unreachable = nowrefs/stash dan gitgc-prune = sekarang untuk memaksa semua stashes untuk dibersihkan sekali sekali. Di samping itu, anda juga boleh menggunakan perintah gelung bash whisgitstablist | grep-q '^stash@'; dogitstashdrop; d;

PackFile adalah mekanisme yang efisien yang digunakan oleh GIT untuk membungkus, memampatkan dan memindahkan objek repositori. Apabila anda melaksanakan gitpush, gitfetch atau gitclone, apa yang sebenarnya dihantar adalah packfile; 1. Ia pada mulanya dihasilkan oleh objek longgar melalui arahan gitgc atau gitrepack dan disimpan dalam .git/objek/pek/direktori; 2. 3. Reka bentuk ini mengurangkan jumlah penghantaran dan meningkatkan kecekapan penyegerakan; 4. Sebilangan besar pekfil kecil boleh menjejaskan prestasi, dan boleh digunakan melalui gitgc atau git

Untuk melihat sejarah komited git, gunakan arahan gitlog. 1. Penggunaan asas adalah gitlog, yang boleh memaparkan hash penyerahan, pengarang, tarikh dan maklumat penyerahan; 2. Gunakan Gitlog-Eleline untuk mendapatkan pandangan ringkas; 3. Penapis oleh pengarang atau maklumat penyerahan melalui -pengadil dan --grep; 4. Tambah -P untuk melihat perubahan kod, --Stat untuk melihat statistik perubahan; 5. Penggunaan --graph dan -semua untuk melihat sejarah cawangan, atau menggunakan alat visualisasi seperti gitkraken dan vscode.

Untuk memadam cawangan git, mula -mula pastikan ia telah digabungkan atau tiada pengekalan diperlukan. Gunakan Gitbranch-D untuk memadam cawangan digabungkan tempatan. Jika anda perlu memaksa memadam cawangan yang tidak diturunkan, gunakan parameter -D. Penghapusan Cawangan Jauh menggunakan perintah nama Gitpushorigin-Deletebranch, dan boleh menyegerakkan repositori tempatan orang lain melalui Gitfetch-Prune. 1. Untuk memadam cawangan tempatan, anda perlu mengesahkan sama ada ia telah digabungkan; 2. Untuk memadam cawangan jauh, anda perlu menggunakan parameter --elete; 3. Selepas penghapusan, anda harus mengesahkan sama ada cawangan itu berjaya dikeluarkan; 4. Berkomunikasi dengan pasukan untuk mengelakkan secara tidak sengaja memadamkan cawangan bersama; 5. Cawangan -cawangan yang tidak berguna secara berkala untuk memastikan gudang bersih.

Toswitchgitbranches, firstupdatethelocalrepowithgitfetch, checkexistingbrancheswithgitbranchcommands, thenusegitcheckoutorgitswitchthangeBranches, handlinguncommittedChangesbyCommitt

Untuk membuang pengubahsuaian dalam direktori kerja Git dan kembali ke keadaan komit terakhir, 1. Untuk pengubahsuaian fail yang dikesan, gunakan gitcheckout-atau gitcheckout--. Membuang semua pengubahsuaian; 2. Untuk fail baru yang tidak dikesan, gunakan GitClean-F untuk memadam fail. Jika direktori dimasukkan, gunakan GitClean-FD. Sebelum pelaksanaan, gunakan GitClean-FD untuk melihat pratonton Kandungan Padam; 3. Jika anda perlu menetapkan semula semua perubahan (termasuk kawasan penyimpanan sementara dan direktori kerja), gunakan gitreset-keras. Perintah ini akan menetapkan semula direktori kerja dan kawasan penyimpanan sementara. Pastikan untuk beroperasi dengan berhati -hati. Kaedah ini boleh digunakan secara individu atau dalam kombinasi untuk mencapai tujuan membersihkan direktori kerja.

Cangkuk git digunakan untuk menjalankan skrip secara automatik sebelum dan selepas melakukan, menolak dan operasi lain untuk melaksanakan tugas. Penggunaan khusus termasuk: 1. 2. Format maklumat penyerahan paksa; 3. Hantar pemberitahuan selepas menolak. Mereka membantu menyatukan spesifikasi pasukan dan mengurangkan langkah -langkah manual, seperti menghalang penyerahan apabila ujian gagal. Cangkuk git terletak di dalam .GIT/ Hooks/ Direktori di repositori dan tidak dikongsi secara lalai. Mereka perlu disalin secara manual atau alat yang digunakan seperti Husky untuk kerjasama pasukan. Menulis cangkuk asas memerlukan membuat fail yang boleh dilaksanakan dan menamakan peristiwa yang sepadan, seperti pra-komit, dan menulis pertimbangan logik di sana untuk menyekat atau membenarkan operasi.

Untuk menambah subtree ke repositori git, mula-mula tambahkan repositori jauh dan dapatkan sejarahnya, kemudian gabungkannya ke dalam subdirektori menggunakan arahan Gitmerge dan Gitread-tree. Langkah-langkah adalah seperti berikut: 1. Gunakan perintah Gitremoteadd-F untuk menambah repositori jauh; 2. Jalankan gitmerge-srecursive-no-commit untuk mendapatkan kandungan cawangan; 3. Gunakan Gitread-Tree-Prefix = untuk menentukan direktori untuk menggabungkan projek sebagai subtree; 4. Mengemukakan perubahan untuk melengkapkan penambahan; 5. Apabila mengemas kini, gitfetch terlebih dahulu dan ulangi penggabungan dan langkah -langkah untuk menyerahkan kemas kini. Kaedah ini mengekalkan sejarah projek luaran lengkap dan mudah dikekalkan.
