Apa yang sebenarnya mengontrol email pada sebuah commit
Email penulis (author email) pada sebuah commit ditentukan oleh konfigurasi Git di mesin yang membuat commit tersebut, bukan oleh email yang ditampilkan di profil GitHub Anda. Email profil GitHub adalah pengaturan terpisah yang digunakan untuk notifikasi, pemulihan akun, dan beberapa tindakan antarmuka web. Jika Anda melakukan commit dari terminal, alamat yang ditulis ke dalam objek commit berasal dari nilai user.email lokal Anda. Perbedaan inilah inti persoalannya: mengubah email profil tidak berpengaruh pada commit baris perintah mendatang, dan mengubah konfigurasi Git lokal tidak berpengaruh pada commit yang sudah di-push.
Konfigurasi Git mengontrol email yang terlampir pada commit mendatang yang dibuat dari baris perintah. Sumber
Sebelum mengubah apa pun, pahami apa yang sedang Anda audit. Anda tidak sedang mencoba menghapus email dari GitHub. Anda sedang memutuskan alamat mana yang harus muncul pada commit yang Anda buat mulai sekarang, dan apakah ada repositori Anda yang masih bergantung pada alamat lama untuk atribusi atau perkakas.
Langkah 1: Periksa identitas yang saat ini melekat pada commit Anda
Mulailah dengan melihat isi commit terbaru Anda. Di repositori milik Anda, jalankan log yang menampilkan kolom email penulis dan committer untuk beberapa commit terakhir. Tujuannya adalah melihat string alamat yang tepat, bukan menilai apakah itu sensitif. Lakukan ini di setiap repositori tempat Anda push dari baris perintah, karena konfigurasi lokal bisa berbeda per repositori.
Selanjutnya, periksa konfigurasi efektif yang akan digunakan Git di repositori tersebut. Git menyelesaikan konfigurasi dari beberapa cakupan (scope), dan nilai tingkat repositori menimpa nilai global. Jika Anda melihat alamat yang tidak dikenal, itu mungkin berasal dari pengaturan lokal repositori, file konfigurasi yang disertakan, atau variabel lingkungan di shell Anda. Catat apa yang Anda temukan sebelum mengedit; audit yang tidak dapat direproduksi bukanlah audit.
Langkah 2: Pisahkan kedua pengaturan di kepala Anda
Gunakan tabel keputusan ini untuk menjaga pengaturan profil dan pengaturan commit tetap berbeda. Tabel ini menjelaskan mekanisme umum yang dapat Anda verifikasi di akun dan terminal Anda sendiri; tabel ini tidak menyatakan label menu atau jalur UI tertentu saat ini.
| Pertanyaan | Diatur oleh | Apa yang terpengaruh jika diubah | Apa yang tidak terpengaruh |
|---|---|---|---|
| Email mana yang muncul di profil GitHub saya? | Pengaturan email akun GitHub | Tampilan profil, notifikasi, pemulihan akun | Email penulis pada commit yang Anda buat secara lokal |
| Email mana yang ditulis ke commit baru? | Konfigurasi user.email Git lokal | Commit mendatang yang dibuat dari mesin atau repositori tersebut | Commit yang sudah dibuat atau di-push |
| Apakah commit lama berubah jika saya beralih ke noreply? | Tidak ada yang otomatis | Tidak ada | Objek commit yang ada mempertahankan email penulis aslinya |
| Bisakah saya menyembunyikan email dari commit publik mendatang? | Konfigurasi Git lokal plus alamat noreply | Commit baru yang Anda tulis setelah perubahan | Riwayat masa lalu, fork, dan salinan cache di tempat lain |
Intisari praktis dari tabel: Anda memiliki dua tuas independen. Tarik tuas commit jika kekhawatiran Anda adalah push mendatang. Jangan berharap tuas profil melakukan pekerjaan itu.
Langkah 3: Pilih alamat noreply dan konfigurasikan secara lokal
GitHub menyediakan opsi alamat noreply. Format persisnya didokumentasikan oleh GitHub dan dapat berubah seiring waktu, jadi salin alamat dari pengaturan akun Anda sendiri, bukan dari posting blog. Setelah Anda memilikinya, tetapkan sebagai email commit pada cakupan yang sesuai dengan alur kerja Anda.
Urutan yang aman:
- Salin alamat noreply yang disediakan GitHub dari pengaturan akun Anda.
- Tentukan cakupan: tetapkan secara global jika semua repositori di mesin harus menggunakannya, atau tetapkan per repositori jika Anda berkontribusi ke proyek yang mengharapkan identitas berbeda.
- Terapkan pengaturan dengan
git configpada cakupan yang dipilih. - Buat commit uji di branch sementara dan periksa email penulisnya sebelum push.
- Push hanya setelah commit uji menunjukkan alamat noreply.
GitHub menyediakan opsi alamat noreply; mengubah alamat yang dikonfigurasi tidak menulis ulang commit yang sudah ada. Sumber
Poin kedua itulah yang sering terlewat. Beralih ke noreply adalah kontrol untuk ke depan. Ini tidak menulis ulang commit yang sudah ada, dan tidak menghapus alamat lama Anda dari objek commit yang sudah publik. Jika sebuah repositori telah di-fork atau dimirror, salinan tersebut mempertahankan data commit asli terlepas dari apa yang Anda konfigurasikan hari ini.
Langkah 4: Periksa perilaku antarmuka web dan perkakas secara terpisah
Commit yang dibuat melalui antarmuka web GitHub, atau oleh bot dan integrasi, mungkin menggunakan jalur identitas yang berbeda dari terminal lokal Anda. Jangan berasumsi bahwa perubahan konfigurasi lokal mencakup setiap commit yang masuk ke repositori. Tinjau kolom penulis pada commit dari berbagai sumber, dan catat mana yang Anda kendalikan secara langsung. Untuk integrasi yang tidak Anda kendalikan, jawaban jujurnya adalah Anda tidak dapat mengatur identitas commit mereka dari laptop Anda; Anda hanya dapat memutuskan apakah akan terus menggunakan integrasi tersebut.
Langkah 5: Putuskan apa yang harus dilakukan dengan riwayat lama
Anda memiliki tiga opsi realistis, dan tidak ada yang berupa “membuat eksposur lama hilang.”
| Opsi | Apa yang dilakukannya | Biaya dan batasan |
|---|---|---|
| Biarkan riwayat apa adanya | Tidak ada risiko merusak clone atau referensi | Commit lama tetap menyimpan email penulis asli |
| Tulis ulang riwayat di repositori Anda sendiri | Mengubah objek commit ke depan di repo tersebut | Penulisan ulang bersifat mengganggu, tidak menjangkau fork atau mirror, dan di luar cakupan bagi sebagian besar pengguna |
| Hapus atau rotasi alamat yang terekspos | Mengurangi eksposur mendatang jika alamat masih aktif | Tidak mengubah commit yang sudah memuatnya |
Bagi sebagian besar pembaca, langkah yang tepat adalah yang pertama atau ketiga: berhenti menambahkan alamat ke commit baru, dan anggap commit lama sebagai publik secara permanen. Jika alamat yang terekspos masih Anda gunakan untuk login atau pemulihan, pertimbangkan apakah alamat itu seharusnya tetap dikaitkan dengan akun. Itu adalah keputusan keamanan akun, bukan keputusan konfigurasi Git.
Kesalahan umum
- Mengubah email profil dan menganggap commit sudah beres. Pengaturan profil dan identitas commit adalah terpisah. Commit terminal mendatang akan tetap membawa alamat lama sampai Anda mengubah konfigurasi Git lokal.
- Mengatur noreply secara global tanpa memeriksa override repositori.
user.emaillokal repositori akan menang atas nilai global Anda. Audit setiap repositori tempat Anda push. - Push commit uji ke branch publik. Verifikasi email penulis di branch sementara atau dengan log lokal sebelum push.
- Percaya bahwa beralih ke noreply membersihkan riwayat. Itu tidak menulis ulang commit yang sudah ada, dan tidak dapat menjangkau fork, mirror, atau salinan cache.
- Menganggap setiap sumber commit berada di bawah kendali Anda. Commit antarmuka web dan commit integrasi mungkin menggunakan identitas berbeda; periksa, jangan berasumsi.
- Menganggap profil yang diedit sebagai penghapusan. Mengubah apa yang ditampilkan profil Anda tidak menghapus data yang tersimpan atau mengubah objek commit.
Melindungi jejak Anda sendiri
Email commit adalah satu saluran sempit. Jejak publik Anda juga mencakup handle dan profil yang terkait dengan alamat tersebut di platform lain. Jika Anda mengaudit sebuah alamat karena muncul di suatu tempat publik, langkah berikutnya yang berguna adalah melihat akun publik mana yang terkait dengannya. Panduan TruthsSeek tentang cara menemukan akun yang terkait dengan alamat email memandu proses peninjauan itu, dan halaman pencarian GitHub di /find/github/ adalah titik awal untuk memeriksa handle yang diketahui. TraceSeek, aplikasi yang dibahas TruthsSeek, memeriksa nama pengguna terhadap 3.000+ platform dan menawarkan pemindaian pertama gratis; produk menyatakan pemindaian memakan waktu 20–30 detik. Alat ini menampilkan kecocokan publik sebagai petunjuk, bukan bukti kepemilikan, dan tidak mengubah pengaturan platform atau mengekspos catatan pribadi. Gunakan untuk memetakan apa yang sudah publik, lalu lakukan perubahan konfigurasi di platform itu sendiri.
Rutinitas yang realistis: perbaiki identitas Git lokal Anda sekali, verifikasi dengan commit uji, lalu periksa ulang secara berkala kolom penulis pada commit dari alat atau mesin baru. Perlakukan setiap commit yang di-push sebagai data publik permanen, karena dalam praktiknya biasanya memang demikian.
Fakta kunci
- Konfigurasi Git mengontrol email yang terlampir pada commit mendatang yang dibuat dari baris perintah.
- GitHub menyediakan opsi alamat noreply; mengubah alamat yang dikonfigurasi tidak menulis ulang commit yang sudah ada.
- Pengaturan email profil GitHub dan pengaturan email commit Git lokal adalah kontrol terpisah dengan efek berbeda.
- TraceSeek memeriksa nama pengguna di 3.000+ platform dan menawarkan pemindaian pertama gratis, dengan waktu pemindaian yang dinyatakan produk 20–30 detik.
- Kecocokan nama pengguna publik adalah petunjuk, bukan bukti kepemilikan akun.