Помилка "Ваш push опублікує приватну електронну адресу"


110

Я дуже новачок у GitHub / VCS .

Коли я намагаюся поділитися своїм проектом на GitHub, я отримую таке повідомлення про помилку.

    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'

Я погуглив повідомлення про помилку і не отримав жодного звернення. Я також шукав Stack Exchange, але сигари немає. Як я можу вирішити це питання?

Відповіді:


66

Я також відчув те саме error: GH007повідомлення та використав наступне для вирішення проблеми.

  1. Перейдіть до Налаштування адреси електронної пошти коміту .
  2. Дотримуйтесь Налаштування адреси електронної пошти для кожного сховища на вашому комп’ютері .
  3. Відкрийте свій обліковий запис GitHub і перейдіть до НалаштуванняЕлектронні листи .
  4. Установіть прапорець Зберігати мою електронну адресу приватною .
  5. Зніміть прапорець заблокувати командний рядок, що виставляє мою електронну пошту .

Це може виявити вашу електронну адресу.


24
Це рішення, але насправді може виявити вашу адресу електронної пошти. Якщо у вас є якісь коміти, які ще не були натиснуті, вам потрібно буде зняти прапорець Блокувати натискання командного рядка, що викриває мою електронну пошту. Тоді ви можете натиснути ці коміти, що очікують на розгляд. Потім оновіть свою адресу електронної пошти на адресу електронної пошти, на яку немає відповіді, і поставте прапорець біля пункту Блокувати натискання командного рядка, що знову викриває мою електронну пошту, щоб ваша адреса залишалася конфіденційною.
SvenAelterman

5
@SvenAelterman update your email address to the no-reply email addressде? У налаштуваннях github або на вашій локальній машині десь, що, мабуть, надсилає / використовує вашу приватну електронну адресу? Мені здається непередбачуваним, що я міг би скопіювати та передати адресу електронної пошти, згенеровану github, безпосередньо назад у github, а просто просто натиснути на прапорець, тому я вважаю, що читання неправильне. Або це??
hippietrail

15
Щоб змінити електронну адресу для останнього використання git commit --amend --author="Author Name <email@address.com>"
коміту

9
Набагато краще використовувати тут рішення @Winfried . Не виставлятиме свою електронну адресу публічно
Коннор

8
Погоджено, правильна відповідь: @ Winfried's stackoverflow.com/a/51097104/7872793 .
Шейн

230

Увімкнувши функцію «Заблокувати натискання командного рядка, що викриває мою електронну пошту», ви також захочете налаштувати Git на використання вашої адреси електронної пошти без відповіді. Не хвилюйтеся - це не вплине на графік вашого внеску. Усі комітети все ще будуть пов’язані з вашим рахунком.

  1. Відкритий термінал.

  2. Змініть поточний робочий каталог на локальний репозиторій, де ви хочете налаштувати адресу електронної пошти, яку ви асоціюєте з вашими комітами Git.

  3. Знайдіть свою адресу GitHub без відповіді в особистих налаштуваннях GitHub → Електронні листи . Це згадується в описі прапорця Зберігати мою електронну адресу приватним . Зазвичай він починається з унікального ідентифікатора, а також вашого імені користувача.

  4. Встановіть адресу електронної пошти в Git. Скористайтеся наданою GitHub електронною адресою без відповіді.

    • Встановлення адреси електронної пошти для кожного сховища на вашому комп’ютері

      git config --global user.email "{ID}+{username}@users.noreply.github.com"
      
    • Встановлення адреси електронної пошти для одного сховища

      git config user.email "{ID}+{username}@users.noreply.github.com"
      
  5. Скиньте інформацію про автора для вашого останнього коміту:

    git commit --amend --reset-author
    

    Якщо у вас є кілька комісій з вашою приватною електронною адресою, див. Цю відповідь .

  6. Тепер ви можете натиснути коміт за допомогою адреси електронної пошти noreply, а майбутні коміти також матимуть адресу електронної пошти noreply.

    git push
    

Після того, як ви налаштуєте Git, коміти використовуватимуть вашу альтернативну електронну адресу "noreply", і будь-які натискання, які не будуть, не будуть відхилені.


28
Це має бути прийнятою відповіддю. Відповідь @ sofia-fernandez може вказати адреси електронної пошти. Чи можна зробити це трохи коротшим і читабельнішим? У вас є два основні розділи, де єдиною відмінністю є --globalпрапор
Коннор

У мене були проблеми з інтерфейсом Linux (використовував термінал SourceTree, і минув деякий час з моменту використання VI), ви можете додати, -m <comment>якщо хочете цього уникнути.
MikeL

2

Ви, мабуть, увімкнули (або це ввімкнено за замовчуванням) функцію конфіденційності електронної пошти GitHub.

Це докладно на цій сторінці в довідці GitHub .

Коротше кажучи, є перемикач, який ви можете ввімкнути (який увімкнено у вашому обліковому записі), який запобігає будь-якому натисканню, де користувач є вашою фактичною адресою електронної пошти. Натомість ви можете використовувати анонімну адресу (або вимкнути функцію).

Деталі для обох варіантів доступні на одній сторінці .


Дякую! Я анонімізував свій електронний адрес, і це вирішило проблему!
user156060

Використання анонімної адреси електронної пошти є хорошим рішенням. Якщо ви створили його до 18 липня 2017 року, можливо, ви захочете зробити це ще раз, щоб додати до нього 7 випадкових цифр.
SvenAelterman

Відповідь Вінфріда - це самодостатня відповідь.
Пітер Мортенсен

0
  1. Йти до Settings
  2. Натисніть на Emails. Прокрутіть донизу. Keep my email addresses privateрозділ буде там.
  3. Запишіть загальнодоступний ідентифікатор електронної пошти, згаданий там.
  4. Скиньте свій локальний глобальний ідентифікатор електронної пошти із загальнодоступним ідентифікатором електронної пошти, згаданим у попередньому кроці, використовуючи наступну команду.
$ git config — global user.email "<user_email_id>"
  1. Поверніть свій останній локальний коміт, який заблокували.
$ git reset --soft HEAD~1 
  1. Зробіть нову комісію і натисніть її. Це спрацює.

-2

У мене було те саме питання. Моє рішення - на малюнку нижче:

Налаштування GitHub


7
Ви збираєтеся опублікувати свою електронну пошту, відкриту для всіх скребків та подібних, але потім розмиваєте її там
Лесто,

Чим це відрізняється від прийнятої відповіді (опублікованої майже за рік до цього)?
Пітер Мортенсен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.