Rumah  >  Artikel  >  alat pembangunan  >  git sejarah yang jelas

git sejarah yang jelas

WBOY
WBOYasal
2023-05-25 18:35:383301semak imbas

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

  1. Gunakan arahan untuk mengosongkan sejarah satu fail

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.

  1. Gunakan arahan untuk mengosongkan sejarah komit

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>^

4) Edit tetingkap interaktif untuk muncul komit sasaran

Dalam mod interaktif, kita perlu menandakan komit sasaran yang perlu dipadamkan sebagai "jatuhkan", Kemudian simpan fail dan keluar. Contoh kelihatan seperti ini:

$ git rebase -i 55d4d98de4caf2ac1a8f783624c58e533500f3d7^
55d4d98de4caf2ac1a8f783624c58e533500f3d7Dalam 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. 55d4d9844a0c2c6) 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!

Kenyataan:
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