Git ialah alat kawalan versi yang biasa digunakan dan digunakan secara meluas dalam pembangunan projek. Semasa pembangunan projek, kami biasanya menggunakan pelbagai arahan git untuk kawalan dan pengurusan versi, termasuk menyerahkan kod, menggabungkan cawangan dan operasi lain. Walau bagaimanapun, dalam beberapa kes, kami mungkin perlu mengosongkan sejarah Git, seperti memadamkan maklumat sensitif atau mengosongkan rekod komit yang tidak perlu. Di bawah ini kita akan membincangkan cara mengosongkan sejarah Git.
1. Sandaran
Sebelum melaksanakan operasi pembersihan sejarah Git, kita perlu membuat sandaran untuk mengelakkan ralat atau situasi yang tidak dijangka dalam operasi. Adalah penting untuk menyandarkan pangkalan kod semasa ke tempat yang selamat supaya kami boleh memulihkan pangkalan kod kami jika perlu. Kita boleh menggunakan arahan pembungkusan Git untuk menyandarkan projek ke dalam fail termampat, contohnya:
git archive --format zip --output backup.zip HEAD
Arahan ini akan membungkus pangkalan kod semasa ke dalam fail ZIP dan menyimpannya ke backup.zip.
2. Kosongkan sejarah
Memadamkan sejarah satu fail secara relatifnya operasi mudah , kita boleh menggunakan arahan berikut untuk mencapai:
$ git filter-branch --index-filter 'git rm --cached --ignore-unmatch path/to/file' --prune-empty -- --all
Arahan ini akan memadam sepenuhnya fail sasaran daripada sejarah. Antaranya, path/to/file
mewakili laluan fail yang hendak dikosongkan.
Kadangkala, kita perlu memadamkan komit dan sejarahnya yang seterusnya. Untuk melakukan ini, kita boleh menggunakan perintah rebase
Git. Khususnya, kita perlu melakukan langkah berikut:
1) Gunakan arahan berikut untuk memaparkan semua komit dalam projek
$ git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
Arahan ini akan memaparkan semua rekod komit dalam projek.
2) Tentukan nilai SHA bagi komit yang hendak dipadamkan
Kita perlu mencari nilai SHA bagi komit yang hendak dipadamkan, yang boleh diperolehi daripada log komit di bawah:
commit 55d4d98de4caf2ac1a8f783624c58e533500f3d7 Author: John Doe <john@doe.com> Date: Fri Apr 30 16:01:07 2021 -0700 Added new feature
Contoh di atas Nilai SHA komit dalam Untuk rekod sejarah, anda boleh melaksanakan arahan berikut: 55d4d98de4caf2ac1a8f783624c58e533500f3d7
$ git rebase -i <commit-hash>^
$ git rebase -i 55d4d98de4caf2ac1a8f783624c58e533500f3d7^
55d4d98de4caf2ac1a8f783624c58e533500f3d7
Dalam contoh di atas, sejarah akan dipadamkan dan sejarah akan menjadi komitmen terkini.
5) Gunakan arahan berikut untuk mengosongkan rekod sejarah lama
pick 44a0c2c this is an invalid commit, which should be removed drop 55d4d98 Added new feature
Arahan ini boleh mengosongkan komit yang ditandakan sebagai "jatuhkan" dan komit berikutnya. 55d4d98
44a0c2c
6) Tekan ke gudang terpencil
Akhir sekali, kita perlu memaksa menolak ke gudang terpencil untuk mengemas kini rekod sejarah di gudang terpencil dan memastikan ketepatan rekod sejarah:
$ git filter-branch --force --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch ./' --tag-name-filter cat -- --all
Sila ambil perhatian bahawa anda harus berhati-hati apabila melaksanakan arahan di atas dan pastikan anda telah menyandarkan pangkalan kod anda. Kerana sekali dipadam, ia tidak boleh dipulihkan.
Ringkasan
Artikel ini memperkenalkan cara menggunakan Git untuk mengosongkan sejarah. Sebelum melaksanakan operasi ini, kita perlu mempertimbangkan akibat operasi pada rekod sejarah dan membuat sandaran untuk mengelakkan kerugian yang tidak dapat dipulihkan. Pada masa yang sama, kita harus cuba mengelak daripada membersihkan rekod sejarah dan hanya menggunakannya apabila perlu.
Atas ialah kandungan terperinci git sejarah yang jelas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!