Znaczenie wiadomości GitHub: push odrzucony z powodu ograniczeń prywatności e-mail


201

Zaakceptowałem i połączyłem żądanie ściągnięcia na githubie, a teraz nie mogę już wycofać moich zobowiązań.

Wiadomość jest:

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

Co mam teraz zrobić ?


1
Znalazłem stronę dokumentacji: help.github.com/en/github/...
Sebastian Norr

Odpowiedzi:


398

Zdalne repozytorium zostało skonfigurowane tak, aby uniemożliwić wypychanie zatwierdzenia, które ujawniłoby Twój osobisty adres e-mail. Na przykład w GitHub zaznaczyłeś wypychanie wiersza poleceń Zablokuj, które ujawniają mój e-mail, aby to włączyć .

Blokuj wypychania wiersza poleceń, które ujawniają mój e-mail

Chociaż oczywiście możesz odznaczyć to ustawienie, ujawni Twój prywatny adres e-mail wszystkim na świecie, ponieważ informacje o autorze są dostępne dla każdego, kto ma dostęp do Twojego repozytorium.

Zamiast tego wykonaj następujące czynności:

  1. Możesz zobaczyć swój osobisty adres e-mail, który jest domyślnie używany do zatwierdzeń w Git:

    git config --global user.email
  2. Znajdź swój dokładny adres GitHub w Ustawieniach osobistych → Wiadomości e-mail w GitHub . Jest to wspomniane w opisie pola wyboru Zachowaj mój prywatny adres e-mail . Zwykle zaczyna się od unikalnego identyfikatora plus twojej nazwy użytkownika:

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

    Zachowaj mój adres e-mail prywatny

  3. Zmień globalne ustawienie adresu e-mail użytkownika na swój dodatkowy adres GitHub:

    git config --global user.email {ID}+{username}@users.noreply.github.com
  4. Zresetuj informacje o autorze dotyczące ostatniego zatwierdzenia:

    git commit --amend --reset-author

    Jeśli masz wiele zatwierdzeń z prywatnym adresem e-mail, zapoznaj się z tą odpowiedzią .

  5. Teraz możesz wcisnąć zatwierdzenie przy użyciu adresu e-mail bez odpowiedzi, a przyszłe zatwierdzenia również będą miały ten adres e-mail.

    git push

4
Nie, zadziałało to po mojej stronie jak urok, może zapomniałeś o kroku, @adamczi. To powinna być zaakceptowana odpowiedź, ponieważ zawiera oba możliwe rozwiązania.
Ioanna

4
Dzięki, domyślam się, że mogłem popełnić błąd w kroku 2. Warto zauważyć, że powinieneś wyraźnie postępować zgodnie z instrukcjami @ Virtlink tam, ponieważ ustawienie adresu e-mail na inny niż <your_uname>@users.noreply.github.com(jak ja ustawiam na None) spowoduje, że nie zobaczysz swoich zobowiązań wykres na stronie profilu.
adamczi

3
Miałem podobny tajemniczy problem. Mój błąd polegał na tym git commit --amend --author "first last me@users.noreply.github.com"i nie podobało mi się to. Ty naprawdę trzeba zresetować user.emailparametr konfiguracyjny dokładnie tak, jak powyżej. Twoje zdrowie!
msanford,

6
Krok 4, który zapewnia Virtlink powyżej, był kluczowy dla mojego przejścia tego błędu. Ustawiłem user.email w konfiguracji na używanie mojego adresu e-mail bez odpowiedzi, ale polecenie Push nadal zwróciło frustrujący błąd związany z publikowaniem prywatnego e-maila. Po poprawieniu zatwierdzenia, które próbowałem wcisnąć, pozwoliło to na wypchnięcie.
teaman

3
Możesz zmienić adres e-mail tylko dla jednego repozytorium. Ta odpowiedź była pomocna, ale musiałem także odnieść się do artykułu pomocy github: Ustawianie adresu e-mail dla pojedynczego repozytorium
gfullam

146

Jest to prawdopodobnie spowodowane nowym ustawieniem GitHub, które blokuje wypychanie wiersza poleceń, które ujawniają Twój adres e-mail.

Spróbuj usunąć zaznaczenie pola „Blokuj wypychanie wiersza polecenia, które ujawniają mój e-mail” w ustawieniach e-maila, a następnie pchaj ponownie.


20
czy odznaczenie tej opcji spowoduje ujawnienie mojego prywatnego adresu e-mail?
Franck Freiburger,

14
Tak, zrobi to, ale już ujawniłeś swój adres e-mail, jeśli wypchnąłeś zatwierdzenia do swojego repozytorium. Chociaż Github nie pokaże twojego adresu e-mail, jeśli sklonuję twoje repozytorium, zobaczę je tak samo, i właśnie temu temu zapobiegnie.
Lasse V. Karlsen

10
To wątpliwe rozwiązanie. Przynajmniej wspomnij, że ujawni twój adres e-mail na cały świat.
kovac

Daniel AA Pelsmaeker i Winfried's są lepszymi odpowiedziami.
Peter Mortensen

1

Rozwiązałem błędy przez:

git config --global user.email ""

To po prostu ustawiło mój adres e-mail na pusty (pusty ciąg). Teraz ustawiam pocztę elektroniczną w poszczególnych projektach za pomocą:

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


0
  1. po prostu wejdź na github.com i kliknij swój profil
  2. Przejdź do ustawień
  3. teraz kliknij „E-mail” na lewym panelu nawigacyjnym
  4. i wyszukaj pole „Zachowaj prywatność moich adresów e-mail”
  5. odznacz tę opcję
  6. teraz sprawdź ponownie i myślę, że Twój problem został już rozwiązany.

2
to zadziała, ale ujawni twój prywatny adres e-mail. jeśli martwisz się o prywatność, zobacz inne rozwiązania.
kaznovac

-1

Odznacz Zablokuj wypychania wiersza poleceń, które ujawniają mój e - mail, a następnie spróbuj wypchnąć kod z wiersza poleceń.


to samo dotyczy wiedzieć?
LOG_TAG

to zadziała, ale ujawni twój prywatny adres e-mail. jeśli martwisz się o prywatność, zobacz inne rozwiązania.
kaznovac

Czym różni się to od odpowiedzi Jordana Lewisa ?
Peter Mortensen
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.