Ich habe dieses seltsame Problem, bei dem ich ein Repository mit meinen Anmeldeinformationen geklont habe ( [email protected]
). Aber ich kann die Änderungen nicht übertragen, da ich immer diese Meldung erhalte:
GitLab: You cannot push commits for '[email protected]' . You can only push commits that were committed with one of your own verified emails.
Das Problem besteht darin, dass ich beim Überprüfen der globalen Benutzer und der Repository-Benutzer Folgendes feststelle [email protected]
:
Global (unten bestätigt meine korrekte Adresse):
git config --global user.email
git config --global user.name
Repository (unten bestätigt meine korrekte Adresse):
git config user.email
git config user.name
Was soll ich tun und was ist der Grund für dieses mysteriöse Mysterium?
Antwort1
Ich konnte das gleiche Problem mit diesem Git-Befehl beheben:
git commit --amend --reset-author --no-edit
Ich habe zunächst versucht, mit der falschen E-Mail-Adresse einen Commit durchzuführen, aber selbst nachdem ich user.name und user.email git config --global
auf die richtigen Werte gesetzt hatte, erhielt ich immer wieder den gleichen Fehler wie oben: „Sie können keine Commits pushen für …“.
Die Lösung bestand darin, den Autor in Git zurückzusetzen – dann wurde der Push in Gitlab akzeptiert.
Als Referenz:https://github.com/git-tips/tips#revert-undo-a-commit-by-creating-a-new-commit
Antwort2
In meinem Fall gab es eine Committer-Einschränkung im Projekt auf GitLab. „Benutzer können nur Commits in dieses Repository pushen, die mit einer ihrer eigenen verifizierten E-Mails committet wurden.“ Da ich SSH auch mit meinem Computer konfiguriert habe, wurde meine Benutzer-E-Mail in der globalen Git-Datei mit der Adresse meines Computers aktualisiert, sodass Remote kein PUSH zuließ.
Sie finden dies unter Gitlab -> Einstellungen -> Repository -> Push-Regeln; deaktivieren Sie einfach diese Commit-Einschränkung und es wird funktionieren.
Antwort3
git commit --amend --reset-author --no-edit
ändert nur den Autor im letzten Commit. Wenn Sie mehrere Commits haben, können Sie trotzdem nicht pushen.
Überprüfen Sie es mit git log
und setzen Sie jedes Commit mit dem falschen Autor zurück, und führen Sie das Commit erneut aus.