Rumah > alat pembangunan > git > Bagaimana untuk memadamkan komitmen sejarah dalam git

Bagaimana untuk memadamkan komitmen sejarah dalam git

PHPz
Lepaskan: 2023-04-26 09:51:26
asal
8956 orang telah melayarinya

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
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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.

  1. Menulis semula sejarah

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
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

(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^
Salin selepas log masuk

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
Salin selepas log masuk

Akhir sekali, anda boleh menggunakan arahan berikut untuk mengesahkan sama ada anda berjaya memadamkan sejarah komit:

git log
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  1. Gunakan mekanisme penapisan Git

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>
Salin selepas log masuk

(2) Gunakan yang berikut arahan untuk memasuki repositori salinan:

cd <repository name>.git
Salin selepas log masuk

(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
Salin selepas log masuk

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
Salin selepas log masuk

Akhir sekali, anda boleh menggunakan arahan berikut untuk mengesahkan sama ada sejarah komit berjaya dipadamkan:

git log
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan