Значение сообщения GitHub: push отклонено из-за ограничений конфиденциальности электронной почты


204

Я принял и объединил запрос на извлечение на github, и теперь я не могу больше получать свои коммиты.

Сообщение:

! [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)

Что мне теперь делать ?


1
Я нашел страницу документации: help.github.com/en/github/…
— Себастьян Норр

Ответы:


402

Удаленный репозиторий был настроен так, чтобы запретить вам отправлять коммит, который бы раскрыл ваш личный адрес электронной почты. Например, в GitHub вы установили флажки Блокировать запросы командной строки, которые открывают мой почтовый ящик, чтобы включить это .

Блокировка командной строки, которая выставляет мою электронную почту

Хотя вы, конечно, можете снять этот параметр, он предоставит ваш личный адрес электронной почты всем в мире, поскольку информация об авторах доступна для чтения любому, кто имеет доступ к вашему хранилищу.

Вместо этого сделайте это:

  1. Вы можете увидеть свой личный адрес электронной почты, который по умолчанию используется для ваших коммитов в Git:

    git config --global user.email
  2. Найдите свой адрес GitHub как обычно в Личных настройках GitHub → Электронная почта . Это упомянуто в описании флажка Сохранить мой адрес электронной почты частным . Обычно он начинается с уникального идентификатора плюс ваше имя пользователя:

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

    Оставьте мой адрес электронной почты закрытым

  3. Измените настройку глобального адреса электронной почты пользователя, чтобы он был вашим адресом GitHub noreply:

    git config --global user.email {ID}+{username}@users.noreply.github.com
  4. Сбросьте информацию об авторе в вашем последнем коммите:

    git commit --amend --reset-author

    Если у вас есть несколько коммитов с вашим личным адресом электронной почты, посмотрите этот ответ .

  5. Теперь вы можете отправить фиксацию с помощью noreply адреса электронной почты, и у будущих коммитов будет также noreply адрес электронной почты.

    git push

4
Нет, это сработало как заклинание на моей стороне, может быть, вы забыли шаг, @adamczi. Это должен быть принятый ответ, поскольку в нем указаны оба возможных решения.
— Иоанна

4
Спасибо, думаю, я мог сделать ошибку в шаге 2. Стоит заметить, что вы должны явно следовать инструкциям @ Virtlink, потому что задаете для электронной почты значение, отличное от <your_uname>@users.noreply.github.com(например, для меня установлено значениеNone ), приведет к тому, что ваши коммиты не будут отображаться в график на странице вашего профиля.
— adamczi

3
У меня была похожая загадочная проблема. Моя ошибка заключалась в том, git commit --amend --author "first last me@users.noreply.github.com"что это не понравилось. Вы действительно нужно сбросить user.emailпараметр конфигурации точно так же, как указано выше. Ура!
— msanford

6
Шаг 4, который обеспечивает Virtlink выше, был критически важен для моего преодоления этой ошибки. Я настроил user.email в конфигурации, чтобы использовать мой адрес электронной почты без ответа, но команда Push по-прежнему возвращала разочаровывающую ошибку при публикации личной электронной почты. Как только я исправил коммит, который пытался нажать, он разрешил толчок.
— чайник

3
Вы можете изменить адрес электронной почты только для одного хранилища. Этот ответ был полезен, но мне также пришлось обратиться к справочной статье github: настройка адреса электронной почты для одного репозитория
— gfullam

146

Вероятно, это вызвано новым параметром GitHub, который блокирует нажатия командной строки, которые раскрывают ваш адрес электронной почты.

Попробуйте снять флажок «Блокировать командные строки, которые раскрывают мою электронную почту» в настройках электронной почты, а затем снова нажать кнопку.


20
не снимать ли галочку с этой опции будет выставлять мой личный адрес электронной почты?
— Франк Фрайбургер

14
Да, это то, что он будет делать, но вы уже раскрыли свой адрес электронной почты, если вы отправили коммиты в свой репозиторий. Несмотря на то, что Github не будет показывать ваш адрес электронной почты, если я клонирую ваш репозиторий, я смогу увидеть их точно так же, и именно это предотвратит эта новая функция «предотвращай и работай»
— Лассе В. Карлсен

10
Это сомнительное решение. По крайней мере, отметьте, что это откроет ваш адрес электронной почты всему миру.
— Ковач


1

Я решил ошибки путем:

git config --global user.email ""

Это просто установило мой адрес электронной почты пустым (пустая строка). Теперь я настраиваю свою электронную почту в отдельных проектах с помощью:

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


0
  1. просто зайдите на github.com и нажмите на свой профиль
  2. перейдите в настройки
  3. Теперь нажмите на «Email» на левой навигационной панели.
  4. и найдите поле «Сохранить мои адреса электронной почты частными»
  5. пожалуйста, снимите этот флажок
  6. сейчас, пожалуйста, проверьте еще раз, и я думаю, что ваша проблема решена сейчас.

2
это будет работать, но это покажет ваш личный адрес электронной почты. если вы беспокоитесь о конфиденциальности, посмотрите другие решения.
— Казновац

-1

Снимите флажок Блокировать командную строку, которые отображают мою электронную почту, а затем попробуйте отправить код из командной строки.


то же самое применимо знаете?
— LOG_TAG

это будет работать, но это покажет ваш личный адрес электронной почты. если вы беспокоитесь о конфиденциальности, посмотрите другие решения.
— Казновац

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.