Ich habe App-Server, die ich mithilfe von Chef + einigen Ad-hoc-Bash-Skripten zusammen boote. Das Problem ist, wenn ich ein Update auf einem dieser App-Server ausführen möchte, erhalte ich:
19:00:28: *** Please tell me who you are.
Run
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
Muss ich dies wirklich so einstellen, dass es git pull origin master
jedes Mal, wenn ich einen App-Server aktualisiere, einfach ist ? Gibt es eine Möglichkeit, dieses Verhalten zu überschreiben, damit kein Fehler auftritt, wenn Name und E-Mail-Adresse nicht festgelegt sind?
git pull
ein Commit erstellen soll, weil es beispielsweise eine Zusammenführung durchgeführt hat.Antworten:
Ich verbringe viele Stunden damit, wenn ich PHP-Skript aufrufe, um Git zu initiieren und festzuschreiben. Und ich fand, dass der Arbeitsablauf sein sollte:
Wenn Sie [23] und 1 tauschen, funktioniert die Konfiguration überhaupt nicht.
Ich wünschte, dies würde etwas helfen.
quelle
--global
umschaltengit config
und dies einmal für Ihr Betriebssystemkonto tun. Danach werden die Schritte 2-3 nicht mehr benötigt.Anstatt a zu tun
git pull
, können Sie Folgendes tun:In keinem Fall müssen Sie Ihren Git-Benutzernamen / Ihre E-Mail-Adresse konfigurieren.
Dadurch werden alle nicht festgeschriebenen lokalen Änderungen / Festschreibungen zerstört, und Ihr HEAD zeigt auf ein Festschreiben (kein Zweig). Beides sollte jedoch für einen App-Server kein Problem sein, da Sie keine lokalen Änderungen vornehmen oder sich auf dieses Repository festlegen sollten.
quelle
git fetch && git reset --hard HEAD
?git reset --hard HEAD
wirft nur Ihre uneingeschränkten Änderungen weg, es ändert nichts daran, auf welchem Commit Ihr Arbeitsbereich basiert (da Sie per Definition bereits auf HEAD sind)Wenn Sie Sourcetree verwenden: Repository -> Repository-Einstellungen -> Erweitert -> Deaktivieren Sie das Kontrollkästchen "Globale Benutzereinstellungen verwenden"
hat super für mich funktioniert.
quelle
es funktioniert für mich, versuchen Sie dies .. Sie müssen Ihr Terminal mit Fernzugriff konfigurieren.
quelle
Aktualisieren Sie Ihren Bootstrap-Prozess, um einen
${HOME}/.gitconfig
mit dem richtigen Inhalt zu erstellen oder einen vorhandenen von irgendwoher zu kopieren.quelle
Das hat bei mir super funktioniert.
quelle
Das gleiche Problem trat bei mir auf und wurde durch Hinzufügen von Standardeinstellungen für Name und E-Mail-Repository behoben.
Wie Doron vorschlug -
Wenn Sie Sourcetree verwenden: Repository -> Repository-Einstellungen -> Erweitert -> Deaktivieren Sie das Kontrollkästchen "Globale Benutzereinstellungen verwenden".
Fügen Sie den Standardnamen und die E-Mail-Adresse hinzu.
quelle
In meinem Fall fehlte mir "e" im Wort "E-Mail", wie Chad oben angegeben hat, aber ich sehe, dass dies bei Ihnen nicht der Fall ist. Bitte drücken Sie den folgenden Befehl, um zu sehen, ob alles wie erwartet gezogen wird.
quelle
Sie müssen Ihre E-Mail so schreiben
Dann: Schreiben Sie den Benutzernamen
Danach erscheint das Poupup-Fenster
Schreiben Sie USERNAME & EMAIL für das Konto, das Sie beitragen möchten
quelle
Für mich war das Problem die Netzwerkverbindung. Sobald ich mich wieder mit meinem WLAN verbunden hatte, konnte es die Details abrufen und ohne Probleme festschreiben.
quelle
Es wird nur einmal gefragt und sichergestellt, dass der öffentliche rsa-Schlüssel für diesen Computer über Ihr Github-Konto hinzugefügt wird, an das Sie eine Festschreibungsanforderung festschreiben oder übergeben möchten.
Weitere Informationen hierzu finden Sie hier
quelle
Ich hatte dies als fehlerhafte Fehlermeldung: Funktionierte einwandfrei in
git pull
der cmd-Zeile,git pull
die in einem Perl-CGI-Prozess (einem Webhook zur automatischen Bereitstellung von Github) mit dem oben genannten Fehler fehlgeschlagen ist.Dabei
git status
wird eine kollidierende Datei identifiziert. Durch das Sortieren wurde das Problem behoben.Das Problem trat später erneut auf, als ich einige Konfigurationseinstellungen änderte.
Dieses Mal wurde es durch Festlegen von $ HOME- und $ USER-Umgebungsvariablen behoben (sind in einem CGI-Prozess standardmäßig nicht festgelegt).
quelle
Schauen Sie sich die Konfigurationsdatei an.
Repository> Repository-Einstellungen> Konfigurationsdatei bearbeiten.
Überprüfen Sie, ob der
[user]
Abschnitt vorhanden ist. Wenn der Benutzerabschnitt fehlt, fügen Sie ihn hinzu.Beispiel:
quelle
Ich benutze Heroku CLI 1. muss alle Benutzernamen und Benutzer-E-Mails verwenden
$ git config --global user.email .login email.
$ git config --global user.name .heroku name.
git add *
5 git commit -m "nach Konfiguration Benutzername, Benutzer-E-Mail"
Git Push Heroku Meister
quelle
Ich benutze Jenkins und bin auf dieses Problem gestoßen, als ich versucht habe, eine Veröffentlichung durchzuführen (für die ein Git-Commit erforderlich ist). Um die Probleme zu beheben, musste ich einen benutzerdefinierten Benutzernamen / eine E-Mail-Adresse hinzufügen (siehe Abbildung). Dadurch wurde sichergestellt, dass beim Auschecken des Codes der Name / die E-Mail-Adresse meines Build-Benutzers bei der Ausführung der Version verwendet wurde. Beachten Sie, dass diese Konfiguration in der Projektkonfiguration der Jenkins Multibranch Pipeline verfügbar ist.
quelle
git pull
sollte dies nicht erfordern. Wenn der Pull jedoch einen Zusammenführungskonflikt verursacht, scheint dies nicht erforderlich zu sein.quelle
IMHO, der richtige Weg, um diesen Fehler zu beheben, ist die Konfiguration Ihrer globalen Git-Konfigurationsdatei.
Führen Sie dazu den folgenden Befehl aus:
git config --global -e
Ein Editor wird angezeigt, in den Sie Ihre Standard-Git-Konfigurationen einfügen können.
Hier sind einige:
Weitere Informationen finden Sie unter Anpassen von Git - Git-Konfiguration
Wenn Sie einen Befehl wie
git config
...... Sie können das in Ihre globale Git-Konfigurationsdatei einfügen als:
Für einmalige Konfigurationen können Sie so etwas wie verwenden
git config --global user.name 'your_username'
Wenn Sie Ihre Git-Konfigurationen nicht global festlegen, müssen Sie dies für jedes Git-Repo tun, mit dem Sie lokal arbeiten.
Die Einstellungen user.name und user.email teilen git mit, wer Sie sind, sodass nachfolgende
git commit
Befehle sich nicht beschweren.*** Please tell me who you are.
Oft deuten die Befehle git darauf hin, dass Sie nicht das ausführen, was Sie ausführen sollten. Diesmal sind die vorgeschlagenen Befehle nicht schlecht:
Tipp: Bis ich mich mit git vertraut gemacht habe, habe ich mehr als ein paar Mal meinen Speck gespeichert, indem ich eine Sicherungskopie meiner Projektdatei erstellt habe - bevor ich die vorgeschlagenen git-Befehle ausgeführt und Dinge untersucht habe, von denen ich dachte, dass sie funktionieren würden.
quelle
Die E-Mail-Adresse kann nicht automatisch erkannt werden.
Standardmäßig wird Ihr Systembenutzername wie verwendet
[email protected]
.Sie müssen Ihre E-Mail-Adresse also wie folgt einstellen:
Nach dem Festlegen der E-Mail können Sie die git-Befehle ausführen und Ihre Änderungen festschreiben.
quelle
Beim Versuch, einige Dateien festzuschreiben, ist diese Fehlermeldung aufgetreten.
Einfach zu laufen und
git fetch
dann mein Commit erneut zu versuchen, hat für mich funktioniert.quelle
Um das zu beheben, benutze ich: git config --global user.email "[email protected]" und funktioniert.
user.mail keine Arbeit, müssen Sie vielleicht einen E. Tippfehler setzen?
quelle
Das ist ein Tippfehler. Sie haben versehentlich "user.mail" ohne " e " gesetzt. Beheben Sie das Problem, indem Sie in der globalen Konfiguration mit "Benutzer. E- Mail" festlegen
git config --global user.email "[email protected]"
Hier Lösung gefunden
https://stackoverflow.com/a/14662703
quelle