Profil memenuhi dua tujuan sekali gus: ia merekodkan tetapan sambungan, dan ia membawa himpunan kelayakan yang berfungsi. Sambungan fail tidak memberitahu anda apa-apa tentang yang mana satu anda pegang. Baca kandungannya sebelum memutuskan bahawa ia milik sesuatu repositori.

Langkah di bawah menganggap templat klien sedang dipertimbangkan untuk kawalan versi. Jalankannya mengikut urutan, dan berhenti sebelum commit apa-apa yang anda tidak boleh batalkan.

Baca fail yang akan anda sediakan

Mulakan dengan bait sebenar, kerana profil yang merujuk fail berasingan kelihatan sangat berbeza daripada yang membenamkannya. Cari penanda blok PEM dan tag sebaris bernama ca, cert, key, tls-auth dan tls-crypt, dan penelitian yang sama akan menunjukkan kedua-dua kes. Kunci peribadi yang disulitkan masih dikira bahan sensitif, dan kunci tls-auth atau tls-crypt kongsi ialah kelayakan walaupun ia bukan identiti pengguna. Gunakan semakan yang sama pada semua yang disediakan bersama profil, termasuk arkib dan skrip persediaan yang merujuk fail kelayakan.

Kemudian lihat set yang disediakan dan bukan pokok kerja. git diff --cached menunjukkan apa yang sebenarnya akan terkandung dalam commit, dan itulah satu-satunya versi yang penting untuk keputusan ini.

Tentukan apa yang boleh diedarkan oleh repositori

Templat boleh membawa tetapan kongsi yang telah disemak dan pemegang tempat bernama untuk semua yang diterima seseorang semasa pendaftaran. Apa yang tidak boleh dibawanya ialah identiti yang boleh digunakan, kerana repositori diedarkan kepada semua yang boleh membacanya, termasuk automasi. Repositori peribadi menyempitkan khalayak tanpa mengubah persoalan sama ada setiap pembaca dibenarkan untuk kelayakan itu.

Peraturan abaikan menghalang penambahan masa depan dan tidak melakukan apa-apa terhadap apa yang sudah direkodkan. Asimetri itu wajar dihayati sebelum commit pertama dan bukan selepas yang kesepuluh. Nama dan alamat infrastruktur ialah pertimbangan berasingan: ia bukan rahsia pengesahan, tetapi ia boleh mendedahkan lebih daripada yang ingin diterbitkan oleh pasukan. Buat keputusan itu secara jelas daripada mengelaskan setiap baris sebagai kata laluan atau awam.

Jika bahan itu sudah ada dalam sejarah

Membuang baris itu dalam commit baharu membiarkan versi lama utuh kepada sesiapa yang mengambilnya. Anggap pendedahan itu nyata: kenal pasti jenis kelayakan, kemudian cari pihak berkuasa yang boleh membatalkannya. Sijil klien dibatalkan dan senarai pembatalan dijana semula; kunci saluran kawalan kongsi diganti pada pelayan dan pada setiap klien yang menggunakannya.

Kedua-duanya mempunyai jejari kesan yang sangat berbeza, dan pelan itu harus menyatakan yang mana anda laksanakan sebelum bermula. Cari commit yang memasukkan bahan itu dengan carian jenis git log --all -S 'BEGIN PRIVATE KEY', supaya skop pembersihan diketahui dan bukan diagak. Klon rakan sekerja atau fork mungkin sudah memegang objek lama, sebab itulah pembatalan datang dahulu dan pembersihan kemudian.

Bersihkan hanya selepas ia dibendung

Menulis semula sejarah mengubah setiap commit selepas yang anda sunting, jadi ia memerlukan persetujuan pemilik repositori dan orang yang bekerja di dalamnya terlebih dahulu. Tolakan paksa bukan pembaikan; ia peristiwa penyelarasan dengan risiko pengundurannya sendiri. Jadualkannya, ambil sandaran, dan beritahu pasukan bila ia akan berlaku.

Selepas itu, sahkan pokok semasa dan sejarah yang tinggal dan bukan mempercayai ringkasan alat itu.

Simpan hasilnya sebagai dua artifak: templat yang selamat dikongsi, dan inventori kelayakan yang dikeluarkan melalui proses pendaftaran. Kedua-duanya tidak memerlukan identiti yang boleh digunakan tinggal di dalam repositori.

Pemisahan itulah pembaikan sebenar, dan ia bertahan melepasi orang seterusnya yang ingin commit sesuatu profil.

Artikel berkaitan