Bedeutung der GitHub-Nachricht: Push wurde aufgrund von E-Mail-Datenschutzbeschränkungen abgelehnt


201

Ich habe eine Pull-Anfrage auf Github akzeptiert und zusammengeführt, und jetzt kann ich meine Commits nicht mehr ziehen.

Die Nachricht lautet:

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

Was sollte ich jetzt tun ?


1
Ich fand die Dokumentationsseite: help.github.com/de/github/…
Sebastian Norr

Antworten:


146

Dies wird wahrscheinlich durch eine neue GitHub-Einstellung verursacht , die Befehlszeilen-Pushs blockiert, die Ihre E-Mail-Adresse offenlegen.

Deaktivieren Sie das Kontrollkästchen "Befehlszeilen-Pushs blockieren, die meine E-Mail verfügbar machen" in Ihren E-Mail-Einstellungen und drücken Sie dann erneut.


20
Wenn Sie diese Option deaktivieren, wird meine private E-Mail-Adresse angezeigt.
Franck Freiburger

14
Ja, das ist, was es tun wird, aber Sie haben Ihre E-Mail-Adresse bereits offengelegt, wenn Sie Commits an Ihr Repository gesendet haben. Auch wenn Github Ihre E-Mail-Adresse nicht anzeigt, kann ich sie beim Klonen Ihres Repositorys trotzdem sehen, und genau das verhindert dieses neue Prevent-Push-Ding.
Lasse V. Karlsen

9
Dies ist eine fragwürdige Lösung. Erwähnen Sie zumindest, dass dadurch Ihre E-Mail-Adresse der ganzen Welt zugänglich gemacht wird.
Kovac

397

Das Remote-Repository wurde so konfiguriert, dass Sie kein Commit senden können, bei dem Ihre persönliche E-Mail-Adresse angezeigt wird. Zum Beispiel haben Sie in GitHub das Kontrollkästchen Blockieren von Befehlszeilen- Pushs aktiviert , die meine E-Mail verfügbar machen, um dies zu aktivieren .

Befehlszeilen-Pushs blockieren, die meine E-Mail verfügbar machen

Sie können diese Einstellung natürlich deaktivieren, Ihre private E-Mail-Adresse wird jedoch allen Personen auf der Welt zugänglich gemacht, da Autoreninformationen von jedem gelesen werden können, der Zugriff auf Ihr Repository hat.

Tun Sie stattdessen Folgendes:

  1. Sie können Ihre persönliche E-Mail-Adresse sehen, die standardmäßig für Ihre Commits in Git verwendet wird:

    git config --global user.email
  2. Finden Sie Ihre GitHub-Adresse in den persönlichen Einstellungen Ihres GitHub → E-Mails . Dies wird in der Beschreibung des Kontrollkästchens Meine E-Mail-Adresse privat halten erwähnt . Normalerweise beginnt es mit einer eindeutigen Kennung und Ihrem Benutzernamen:

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

    Halten Sie meine E-Mail-Adresse privat

  3. Ändern Sie die Einstellung der globalen Benutzer-E-Mail-Adresse in Ihre GitHub-Adresse:

    git config --global user.email {ID}+{username}@users.noreply.github.com
  4. Setzen Sie die Autoreninformationen zu Ihrem letzten Commit zurück:

    git commit --amend --reset-author

    Wenn Sie mehrere Commits mit Ihrer privaten E-Mail-Adresse haben, lesen Sie diese Antwort .

  5. Jetzt können Sie das Commit mit der Noreply-E-Mail-Adresse verschieben, und zukünftige Commits haben auch die Noreply-E-Mail-Adresse.

    git push

3
Nein, es hat wie ein Zauber auf meiner Seite funktioniert, vielleicht hast du einen Schritt vergessen, @adamczi. Dies sollte die akzeptierte Antwort sein, da beide möglichen Lösungen angegeben sind.
Ioanna

4
Vielen Dank, ich schätze, ich habe in Schritt 2 möglicherweise einen Fehler gemacht. Beachten Sie, dass Sie die Anweisungen von @ Virtlink dort explizit befolgen sollten, da das Festlegen einer E-Mail auf eine andere als <your_uname>@users.noreply.github.com(wie ich selbst auf None) dazu führt, dass Ihre Commits nicht angezeigt werden das Diagramm auf Ihrer Profilseite.
Adamczi

3
Ich hatte ein ähnliches mysteriöses Problem. Mein Fehler war zu git commit --amend --author "first last me@users.noreply.github.com"und es schien nicht so zu gefallen. Sie müssen den Konfigurationsparameter wirklichuser.email genau wie oben zurücksetzen . Prost!
Msanford

6
Schritt 4, den Virtlink oben bereitstellt, war entscheidend, um diesen Fehler zu überwinden. Ich hatte die user.email in der Konfiguration so eingestellt, dass sie meine E-Mail-Adresse ohne Antwort verwendet, aber der Push-Befehl gab immer noch den frustrierenden Fehler beim Veröffentlichen einer privaten E-Mail zurück. Nachdem ich das Commit geändert hatte, das ich zu pushen versuchte, erlaubte es das Pushen.
Teaman

3
Möglicherweise möchten Sie die E-Mail-Adresse nur für ein einzelnes Repository ändern. Diese Antwort war hilfreich, aber ich musste auch auf den Hilfeartikel von github verweisen: Festlegen Ihrer E-Mail-Adresse für ein einzelnes Repository
gfullam

1

Ich habe die Fehler gelöst durch:

git config --global user.email ""

Dadurch wurde meine E-Mail-Adresse auf leer gesetzt (eine leere Zeichenfolge). Ich setze meine E-Mail jetzt in einzelnen Projekten mit:

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


0
  1. Gehen Sie einfach auf github.com und klicken Sie auf Ihr Profil
  2. gehe zu den Einstellungen
  3. Klicken Sie nun im linken Navigationsbereich auf "E-Mail"
  4. und suchen Sie nach dem Feld "Meine E-Mail-Adressen privat halten".
  5. Bitte deaktivieren Sie diese Option
  6. Jetzt überprüfen Sie bitte noch einmal und ich denke, Ihr Problem ist jetzt gelöst.

2
Dies wird funktionieren, aber es wird Ihre private E-Mail-Adresse offen legen. Wenn Sie sich Sorgen um den Datenschutz machen, sehen Sie sich andere Lösungen an.
Kaznovac

-1

Deaktivieren Sie Blockieren von Befehlszeilen- Pushs , die meine E-Mail verfügbar machen, und versuchen Sie dann, den Code über die Befehlszeile zu übertragen.


das Gleiche gilt wissen?
LOG_TAG

Dies wird funktionieren, aber es wird Ihre private E-Mail-Adresse offen legen. Wenn Sie sich Sorgen um den Datenschutz machen, sehen Sie sich andere Lösungen an.
Kaznovac
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.