Kesalahan “Dorongan Anda akan menerbitkan alamat email pribadi”

115

Saya sangat baru mengenal GitHub / VCS .

Ketika saya mencoba membagikan proyek saya di GitHub, saya mendapatkan pesan kesalahan berikut.

    Can't finish GitHub sharing process
    Successfully created project 'myproject' on GitHub, but initial push failed:
    remote: error: GH007: Your push would publish a private email address.
    failed to push some refs to 'https://github.com/me/myproject.git'

Saya telah mencari pesan kesalahan di Google dan tidak mendapatkan hasil. Saya juga mencari Stack Exchange, tapi tidak ada cerutu. Bagaimana saya bisa mengatasi masalah ini?

pengguna156060
sumber

Jawaban:

70

Saya mengalami error: GH007pesan yang sama juga dan menggunakan yang berikut ini untuk menyelesaikan masalah.

  1. Pergi ke Mengatur alamat email komit Anda .
  2. Ikuti Pengaturan alamat email Anda untuk setiap repositori di komputer Anda .
  3. Buka akun GitHub Anda, dan buka PengaturanEmail .
  4. Pilih kotak centang Pertahankan alamat email saya pribadi .
  5. Hapus centang pada kotak centang Blokir dorongan baris perintah yang mengekspos email saya .

Ini dapat mengekspos alamat email Anda.

sofia-fernandez.dll
sumber
24
Ini adalah solusi tetapi mungkin benar-benar mengungkap alamat email Anda. Jika Anda memiliki komit yang belum didorong, Anda harus menghapus centang Blokir dorongan baris perintah yang mengekspos email saya. Kemudian Anda dapat mendorong komitmen yang menunggu keputusan tersebut. Setelah itu, perbarui alamat email Anda ke alamat email no-reply dan centang Blokir dorongan baris perintah yang mengekspos email saya lagi untuk menjaga kerahasiaan alamat Anda.
SvenAelterman
5
@ SvenAelterman update your email address to the no-reply email addressdimana? Di pengaturan github atau di komputer lokal Anda di suatu tempat yang mungkin mengirim / menggunakan alamat email pribadi Anda? Itu menurut saya berlawanan dengan intuisi bahwa saya mungkin seharusnya menyalin dan melewati alamat email yang dibuat oleh github langsung kembali ke github, bukan cukup klik pada kotak centang, oleh karena itu saya berasumsi bahwa membaca tidak benar. Atau itu??
hippietrail
15
Untuk mengubah email untuk penggunaan terakhir Andagit commit --amend --author="Author Name <[email protected]>"
dspacejs
9
Jauh lebih baik menggunakan solusi @Winfried di sini . Tidak akan mengungkap alamat email Anda secara publik
Connor
8
Setuju, jawaban yang benar adalah @ Winfried's stackoverflow.com/a/51097104/7872793 .
Shane
238

Saat mengaktifkan fitur "Blokir dorongan baris perintah yang mengekspos email saya", Anda juga ingin mengonfigurasi Git untuk menggunakan alamat email no-reply Anda. Jangan khawatir — ini tidak akan memengaruhi grafik kontribusi Anda. Semua komitmen akan tetap dikaitkan dengan akun Anda.

  1. Buka Terminal.

  2. Ubah direktori kerja saat ini ke repositori lokal tempat Anda ingin mengkonfigurasi alamat email yang Anda kaitkan dengan Git commit Anda.

  3. Temukan alamat noreply GitHub Anda di Pengaturan Pribadi GitHub → Email . Ini disebutkan dalam deskripsi kotak centang Jaga alamat email saya pribadi . Biasanya, ini dimulai dengan pengenal unik, ditambah nama pengguna Anda.

  4. Setel alamat email di Git. Gunakan alamat email no-reply yang disediakan GitHub.

    • Menyetel alamat email Anda untuk setiap repositori di komputer Anda

      git config --global user.email "{ID}+{username}@users.noreply.github.com"
      
    • Mengatur alamat email Anda untuk satu repositori

      git config user.email "{ID}+{username}@users.noreply.github.com"
      
  5. Setel ulang informasi penulis pada pengubahan terakhir Anda:

    git commit --amend --reset-author
    

    Jika Anda memiliki banyak komit dengan alamat email pribadi Anda, lihat jawaban ini .

  6. Sekarang Anda dapat mendorong komit dengan alamat email noreply, dan komit di masa mendatang akan memiliki alamat email noreply juga.

    git push
    

Setelah Anda mengkonfigurasi Git, komit akan menggunakan alamat email “noreply” alternatif Anda, dan setiap dorongan yang tidak akan ditolak.

Winfried
sumber
28
Ini harus menjadi jawaban yang diterima. @ sofia-fernandez jawaban dapat mengekspos alamat email. Adakah cara agar Anda dapat membuatnya sedikit lebih pendek dan lebih mudah dibaca? Anda memiliki dua bagian utama di mana satu-satunya perbedaan adalah --globalbenderanya
Connor
Saya mengalami masalah dengan antarmuka Linux (menggunakan terminal SourceTree dan sudah beberapa lama sejak saya menggunakan VI), Anda dapat menambahkan -m <comment>jika Anda ingin menghindarinya.
MikeL
2

Anda mungkin telah mengaktifkan (atau sekarang diaktifkan secara default) fitur privasi email GitHub.

Hal ini rinci pada halaman ini di GitHub bantuan .

Singkatnya, ada sakelar yang dapat Anda aktifkan (yang diaktifkan pada akun Anda) yang mencegah setiap push di mana pengguna adalah alamat email Anda yang sebenarnya. Anda dapat menggunakan alamat yang dianonimkan (atau memilih untuk menonaktifkan fitur).

Detail untuk kedua opsi tersedia di halaman yang sama .

Burhan Khalid
sumber
Terima kasih! Saya menganonimkan alamat email saya dan itu menyelesaikan masalah!
pengguna156060
Menggunakan alamat email yang dianonimkan adalah solusi yang baik. Jika Anda membuatnya sebelum 18 Juli 2017, Anda mungkin ingin melakukannya lagi untuk mendapatkan 7 digit acak yang ditambahkan ke dalamnya.
SvenAelterman
0
  1. Pergi ke Settings
  2. Klik Emails. Gulir ke bawah. Keep my email addresses privatebagian akan ada di sana.
  3. Catat id email publik yang disebutkan di sana.
  4. Setel ulang id email global lokal Anda dengan id email publik yang disebutkan di langkah sebelumnya menggunakan perintah berikut.
$ git config — global user.email "<user_email_id>"
  1. Kembalikan komit lokal terakhir Anda yang diblokir.
$ git reset --soft HEAD~1 
  1. Buat komitmen baru dan dorong. Ini akan berhasil.
Yuvraj Patil
sumber
-2

Saya memiliki masalah yang sama. Solusi saya ada pada gambar di bawah ini:

Pengaturan GitHub

Peter Doherty
sumber
7
Anda mengatur untuk mempublikasikan email Anda, terbuka untuk semua pengikis dan semacamnya, tetapi kemudian Anda mengaburkannya di sana
Lesto
Apa bedanya dengan jawaban yang diterima (diposting hampir satu tahun sebelumnya)?
Peter Mortensen