Kontributor pihak ketiga telah berkomitmen dengan alamat email kantor dan alamat email pribadi mereka. Kami menggunakan file .mailmap, dan mereka dipetakan ke email kantor mereka. Mereka sekarang mendapatkan spam di email kantor mereka karena spammer mengumpulkan .mailmap file di GitHub. Mereka telah meminta untuk dihapus dari file .mailmap.

File .mailmap lama akan tetap ada di riwayat git, tetapi setidaknya tidak akan ada di HEAD lagi. Itulah yang terbaik yang bisa kami lakukan, tanpa git-filter-branch dan git push --force dan membuat banyak, banyak garpu tidak bahagia.

Format umum .mailmap adalah:

Name you want to keep <email you want to keep> Name you no longer want <email you no longer want>

Ini juga berlaku:

Name you want to keep <email you want to keep> <email you no longer want>

Dan

Name you want to keep <email you want to keep>

Tetapi apakah ini juga format yang valid?

Name you want to keep <email you want to keep> Name you no longer want

Karena dengan demikian kami dapat memetakan nama mereka ke sesuatu seperti <name@invalid>, tanpa memasukkan email mereka ke dalam file .mailmap.

Saya sudah mencoba ini, dan kemudian melakukan git log --use-mailmap, dan saya masih mendapatkan alamat email yang lama.

Saya juga sudah mencoba

Name you want to keep <email you want to keep> <>

Dan

Name you want to keep <email you want to keep> <*>

Dan

Name you want to keep <email you want to keep> <.*>

Dan

Name you want to keep <email you want to keep> <**>

Dan tidak satupun dari ini bekerja. Satu-satunya saat itu berhasil, adalah ketika ada alamat email asli yang sama persis dengan alamat email di komit, dan saya tidak ingin menggunakan alamat email asli di file .mailmap.

git
0
Amedee Van Gasse 2 Juni 2020, 10:39

1 menjawab

Jawaban Terbaik

File .mailmap Git tidak mendukung wildcard, dan tidak ada cara untuk memetakan alamat email ke nol, karena alamat email diperlukan untuk komit.

Sintaks yang Anda tanyakan valid, tetapi ia menulis ulang nama pengguna dari nama lama ke nama baru, dan bukan ke format tanpa email.

Jika tujuan Anda adalah untuk memetakan alamat kerja pengguna ke sesuatu yang lain (atau tidak sama sekali) tanpa mencantumkannya dalam file, itu tidak mungkin, karena pencarian dikunci terutama oleh alamat email di objek komit itu sendiri. Baik Anda dan pengguna harus tahu bahwa jika Anda hanya menghapus alamat dari file .mailmap, itu tidak akan menghentikan spam karena spammer juga mengambil alamat email dari repositori (melalui cara lain), sehingga mereka dapat menemukan email yang ada di komit asli. Oleh karena itu, tidak ada cara untuk menghentikan setidaknya beberapa pengambilan alamat di luar selalu menggunakan alamat sekali pakai (seperti penawaran GitHub) atau litigasi agresif terhadap spammer.

1
bk2204 2 Juni 2020, 23:20