Arti pesan GitHub: push ditolak karena pembatasan privasi email


202

Saya telah menerima dan menggabungkan Permintaan Tarik di github, dan sekarang saya tidak bisa lagi menarik komitmen saya.

Pesannya adalah:

! [remote rejected] master -> master (push declined due to email privacy restrictions)
error: failed to push some refs to 'git@github.com:FranckFreiburger/vue-resize-sensor.git'


git did not exit cleanly (exit code 1) (3838 ms @ 12/04/2017 21:23:11)

Apa yang harus saya lakukan sekarang ?


1
Saya menemukan halaman dokumentasi: help.github.com/en/github/…
Sebastian Norr

Jawaban:


400

Repositori jarak jauh telah dikonfigurasi untuk melarang Anda mendorong komit yang akan mengungkapkan alamat email pribadi Anda. Sebagai contoh di GitHub Anda telah memeriksa perintah push Block yang mengekspos kotak centang email saya untuk mengaktifkannya .

Blokir perintah push yang mengekspos email saya

Meskipun tentu saja Anda dapat menghapus centang pengaturan itu, itu akan memaparkan alamat email pribadi Anda kepada semua orang di dunia, karena informasi penulis dapat dibaca oleh siapa pun yang memiliki akses ke repositori Anda.

Sebaliknya, lakukan ini:

  1. Anda dapat melihat alamat email pribadi Anda, yang digunakan secara default untuk komit Anda di Git:

    git config --global user.email
  2. Temukan alamat GitHub Anda di Pengaturan Pribadi GitHub Anda → Email . Disebutkan dalam uraian kotak centang Jadikan alamat email pribadi saya . Biasanya, ini dimulai dengan pengidentifikasi unik, plus nama pengguna Anda:

    {ID}+{username}@users.noreply.github.com

    Simpan alamat email saya pribadi

  3. Ubah pengaturan alamat email pengguna global menjadi alamat utama GitHub Anda:

    git config --global user.email {ID}+{username}@users.noreply.github.com
  4. Setel ulang informasi penulis pada komit terakhir Anda:

    git commit --amend --reset-author

    Jika Anda memiliki beberapa komitmen dengan alamat email pribadi Anda, lihat jawaban ini .

  5. Sekarang Anda dapat menekan komit dengan alamat email noreply, dan komit di masa depan akan memiliki alamat email noreply juga.

    git push

4
Tidak, itu bekerja seperti pesona di sisiku, mungkin Anda lupa langkah, @adamczi. Ini harus menjadi jawaban yang diterima, karena menyatakan kedua kemungkinan solusi.
Ioanna

4
Terima kasih, mungkin saya telah melakukan kesalahan pada langkah 2. Yang perlu diperhatikan adalah bahwa Anda harus secara eksplisit mengikuti instruksi @ Virtlink di sana, karena menyetel email ke selain <your_uname>@users.noreply.github.com(seperti yang saya atur sendiri None) akan mengakibatkan tidak menunjukkan komitmen Anda pada grafik di halaman profil Anda.
adamczi

3
Saya memiliki masalah misterius yang serupa. Kesalahan saya adalah git commit --amend --author "first last me@users.noreply.github.com"dan sepertinya tidak seperti itu. Anda benar - benar perlu mengatur ulang user.emailparameter konfigurasi persis seperti di atas. Bersulang!
msanford

6
Langkah 4 yang disediakan Virtlink di atas sangat penting untuk saya melewati kesalahan ini. Saya telah menetapkan user.email dalam konfigurasi untuk menggunakan alamat email tanpa jawaban, tetapi perintah Push masih mengembalikan kesalahan yang membuat frustasi tentang penerbitan email pribadi. Setelah saya mengubah komit yang saya coba tekan, itu kemudian memungkinkan dorongan.
Teaman

3
Anda mungkin hanya ingin mengubah alamat email untuk satu repositori. Jawaban ini sangat membantu, tetapi saya juga harus merujuk ke artikel bantuan github: Mengatur alamat email Anda untuk satu repositori
gfullam

146

Ini kemungkinan disebabkan oleh pengaturan GitHub baru yang memblokir dorongan baris perintah yang mengekspos alamat email Anda.

Coba hapus centang pada kotak "Blokir perintah push yang mengekspos email saya" di pengaturan email Anda dan kemudian dorong lagi.


20
jangan centang opsi ini akan mengekspos alamat email pribadi saya?
Franck Freiburger

14
Ya, itu yang akan dilakukan tetapi Anda sudah mengekspos alamat email Anda jika Anda telah mendorong komit ke repositori Anda. Meskipun Github tidak akan menampilkan alamat email Anda, jika saya mengkloning repositori Anda, saya dapat melihatnya sama saja, dan itulah yang akan dicegah oleh pencegahan-dorongan baru ini.
Lasse V. Karlsen

10
Ini adalah solusi yang dipertanyakan. Setidaknya sebutkan bahwa ini akan mengekspos alamat email Anda ke seluruh dunia.
kovac

Daniel AA Pelsmaeker dan Winfried adalah jawaban yang lebih baik.
Peter Mortensen

1

Saya memecahkan kesalahan dengan:

git config --global user.email ""

Ini hanya mengatur email saya menjadi kosong (string kosong). Saya sekarang mengatur email saya di proyek-proyek individual dengan:

git config user.email "myemail@domain.com"


0
  1. buka saja github.com dan klik profil Anda
  2. pergi ke pengaturan
  3. sekarang klik pada 'Email' pada panel navigasi kiri
  4. dan cari bidang 'Simpan alamat email saya tetap pribadi'
  5. hapus centang pada opsi ini
  6. sekarang silakan periksa lagi dan saya pikir masalah Anda terpecahkan sekarang.

2
ini akan berfungsi tetapi akan memaparkan alamat email pribadi Anda. jika Anda khawatir tentang privasi, lihat solusi lain.
kaznovac

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.