Rumah  >  Artikel  >  alat pembangunan  >  Bantu anda memadamkan rekod sejarah dalam Git

Bantu anda memadamkan rekod sejarah dalam Git

PHPz
PHPzasal
2023-04-03 09:18:261649semak imbas

Bagi pembangun yang menggunakan Git untuk pengurusan projek, mereka sering menghadapi situasi di mana mereka perlu memadamkan rekod sejarah. Contohnya, jika maklumat sensitif diserahkan atau undang-undang memerlukan pengalihan keluar kandungan tertentu. Walau bagaimanapun, Git direka untuk menyimpan rekod semua pengubahsuaian, jadi memadamkan sejarah bukanlah tugas yang mudah. Artikel ini akan memperkenalkan beberapa kaedah untuk membantu anda memadam rekod sejarah dalam Git.

  1. Gunakan arahan Git

Anda boleh menggunakan git reset dan git push dalam arahan Git untuk memadam rekod sejarah. Mula-mula gunakan perintah git log untuk melihat sejarah.

$ git log --oneline

Ini menyenaraikan semua rekod komit pada cawangan semasa, setiap satu dengan pengecam SHA-1 (lajur pertama) dan mesej (lajur berikut).

Kemudian, gunakan perintah git reset untuk menetapkan semula cawangan semasa kepada sejurus sebelum komit yang anda mahu padamkan. Sebagai contoh, jika anda ingin memadamkan tiga rekod komit terakhir, anda boleh menggunakan:

$ git reset HEAD~3

Ini akan menetapkan semula cawangan semasa kepada tiga rekod komit pertama dan tiga komit terakhir dalam sejarah akan telah dipadamkan.

Akhir sekali, gunakan perintah git push -f untuk menolak paksa ke gudang jauh dan menulis ganti sejarah. Ini boleh menyebabkan masalah untuk orang lain menarik kemas kini, jadi anda perlu memastikan semua orang yang mempunyai kebenaran mengetahui tentang perkara ini.

$ git push -f

Apabila menggunakan kaedah ini untuk memadamkan sejarah, kami mengesyorkan anda membuat sandaran pangkalan kod sebelum melaksanakan, untuk berjaga-jaga.

  1. Menggunakan BFG Repo-Cleaner

Satu lagi alat berkuasa ialah BFG Repo-Cleaner. Ia adalah program Java yang boleh dijalankan secara tempatan untuk memadam sejarah dalam repositori Git.

Pertama, pasang BFG Repo-Cleaner. Anda boleh menggunakan Homebrew untuk memasang pada Mac:

$ brew install bfg

atau muat turun dan pasang dari tapak web rasmi ke komputer anda:

$ wget http://search.maven.org/remotecontent?filepath=com/madgag/bfg/1.14.0/bfg-1.14.0.jar

Kemudian, jalankan arahan berikut dalam direktori akar daripada repositori Git (sila Pastikan anda menyandarkan pangkalan kod anda sebelum memadam):

$ java -jar /path/to/bfg.jar --delete-files filename.txt.git
$ git reflog expire --expire=now --all && git gc --prune=now --aggressive
$ git push

di mana filename.txt.git ialah nama fail yang mengandungi kandungan yang akan dipadamkan (cth. .git-credentials). Di sini BFG Repo-Cleaner digunakan untuk mengalih keluar sejarah komit, rujukan dan teg, dan kemudian memampatkan semula repositori.

Perlu diambil perhatian bahawa BFG Repo-Cleaner boleh memadamkan sebarang kandungan dalam repositori, jadi ia perlu dikendalikan dengan berhati-hati.

  1. Buat repositori Git baharu

Kaedah terakhir ialah mencipta repositori Git baharu yang mengandungi hanya komit yang anda mahu simpan. Pendekatan ini memerlukan beberapa kerja manual tetapi mengekalkan integriti repositori dan tidak menjejaskan kerja orang lain pada repositori.

Pertama, buat direktori baharu dalam direktori akar repositori Git asal untuk menyimpan repositori Git baharu:

$ mkdir newrepo && cd newrepo

Kemudian, salin rekod komit terpilih repositori Git asal Ke direktori baharu:

$ git clone /path/to/oldrepo --depth 1
$ cd oldrepo && git log --oneline

Ini akan menyalin rekod komit terakhir repositori Git asal ke repositori Git baharu. Kemas kini URL jauh repositori baharu dan tolaknya ke repositori jauh.

$ git remote set-url origin git://new/repo.git
$ git push -u origin master

Ini mencipta repositori Git baharu yang mengandungi hanya rekod komited terpilih.

Ringkasan

Dalam Git, memadamkan rekod sejarah adalah isu sensitif dan perlu ditangani dengan berhati-hati. Gunakan perintah git reset untuk memadamkan komitmen terbaru. Gunakan BFG Repo-Cleaner untuk memadamkan sejarah komit fail atau folder tertentu. Akhir sekali, anda boleh mengekalkan rekod komit secara pilihan dengan mencipta repositori Git baharu. Walau apa pun, anda perlu menyandarkan pangkalan kod anda sebelum memadamkannya, untuk berjaga-jaga.

Atas ialah kandungan terperinci Bantu anda memadamkan rekod sejarah dalam Git. 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