Dalam beberapa tahun kebelakangan ini, Git telah menjadi semakin popular di kalangan pasukan pembangunan sebagai alat kawalan versi yang berkuasa. Walau bagaimanapun, apabila menggunakan Git, kadangkala komit buruk mungkin muncul, dan komit ini mungkin memberi kesan negatif pada projek. Cara memadamkan komitmen sejarah ini telah menjadi masalah yang sering dihadapi oleh pengguna Git. Artikel ini akan memperincikan cara memadamkan komitmen sejarah dalam Git.
1. Sejarah penyerahan Git
Sejarah penyerahan Git terdiri daripada banyak penyerahan. Setiap kali anda membuat komit dalam Git, komit baharu dibuat. Setiap penyerahan mempunyai pengecam sendiri (SHA) dan mengandungi maklumat seperti pengarang penyerahan, tarikh dan perihalan penyerahan.
Anda boleh melihat sejarah komit dalam Git melalui baris arahan Git atau alat klien Git. Contohnya, menggunakan baris arahan Git anda boleh menggunakan arahan berikut untuk melihat sejarah komit projek ini:
git log
Arahan ini akan menyenaraikan semua komit pada cawangan semasa, disenaraikan dalam susunan terbalik. Setiap komit mempunyai SHA sendiri, nama dan e-mel komitter, tarikh komit dan mesej komit.
2. Mengapa memadamkan penyerahan sejarah
Dalam proses pembangunan kolaboratif, terdapat banyak faktor manusia yang menyebabkan berlakunya penyerahan yang tidak baik. "Penyerahan Buruk" ialah Penyerahan yang mungkin mengandungi ralat, kelemahan keselamatan, maklumat sensitif, dsb. Jika komitmen buruk ini telah digabungkan ke dalam cawangan talian utama, ia mungkin memberi kesan negatif pada bahagian lain projek.
Selain itu, jika anda memasukkan kandungan yang anda tidak mahu orang lain lihat sebelum menyerahkan kod, seperti kata laluan, kunci API dan maklumat sensitif lain, ia mungkin terdedah selepas penyerahan. Pada masa ini, memadamkan penyerahan sejarah ialah cara untuk melindungi privasi pengguna.
3. Cara memadamkan komitmen sejarah dalam Git
Dalam Git, terdapat dua cara untuk memadamkan komitmen sejarah: menulis semula sejarah dan menggunakan mekanisme penapisan Git.
Menulis semula sejarah sebenarnya dicapai dengan mengubah suai komitmen sejarah. Ini bermakna membuat perubahan dan penyusunan semula kepada komitmen yang telah diterbitkan. Berikut ialah langkah-langkah untuk memadam sejarah komit Git:
(1) Gunakan arahan berikut untuk melihat sejarah komit:
git log
(2) Cari SHA komit yang anda mahu untuk memadam dan merekodkannya.
(3) Gunakan arahan berikut untuk menulis semula sejarah. Dalam arahan ini, gantikan SHA dengan SHA bagi komit yang anda mahu padamkan:
git rebase -i SHA^
Perintah ini akan membuka editor dengan senarai semua komit sejak komit terakhir komit yang dipilih .
(4) Tukar "pilih" di hadapan komit yang ingin anda padamkan kepada "jatuhkan" atau gunakan tanda paun untuk mengulas keluar baris. Simpan dan tutup editor.
(5) Jalankan arahan berikut untuk memaksa menulis ganti komit dalam Git:
git push --force
Akhir sekali, anda boleh menggunakan arahan berikut untuk mengesahkan sama ada anda berjaya memadamkan sejarah komit:
git log
Dalam Git, arahan cawangan penapis boleh membantu anda memadamkan sejarah komit. Perintah ini menyalin keseluruhan repositori dan menggunakan penapis yang ditentukan untuk setiap komit. Berikut ialah langkah untuk menggunakan mekanisme penapisan Git untuk memadam sejarah komit Git:
(1) Gunakan arahan berikut untuk mencipta repositori salinan:
git clone --mirror <Git URL>
(2) Gunakan yang berikut arahan untuk memasuki repositori salinan:
cd <repository name>.git
(3) Gunakan arahan berikut untuk memadamkan penyerahan sejarah:
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch <filename>" --prune-empty --tag-name-filter cat -- --all
Arahan ini digunakan untuk memadamkan penyerahan sejarah bagi fail bernama < ;nama fail>. Perintah ini boleh diubah mengikut keperluan. Di sini, --tag-name-filter cat digunakan untuk membetulkan tag. Akhirnya, arahan ini akan digunakan untuk semua cawangan.
(4) Gunakan arahan berikut untuk menolak perubahan pada repositori Git:
git push --all --force
Akhir sekali, anda boleh menggunakan arahan berikut untuk mengesahkan sama ada sejarah komit berjaya dipadamkan:
git log
4. Ringkasan
Anda boleh memadamkan komitmen sejarah dalam Git dengan menulis semula sejarah atau menggunakan mekanisme penapisan Git. Walau bagaimanapun, sebelum memadamkan sejarah komit, anda harus berfikir dengan teliti dan memastikan semua ahli pasukan memahami kesan perubahan itu. Selain itu, repositori Git harus dibersihkan dengan kerap sebelum menggabungkan perubahan untuk mengurangkan overhed storan.
Atas ialah kandungan terperinci Bagaimana untuk memadamkan komitmen sejarah dalam git. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!