Ich habe das folgende Problem, wenn ich versuche, Code mit git Bash unter Windows abzurufen:
fatal: could not read Username for 'https://github.com': No such file or directory
Ich habe bereits versucht, die hier bereitgestellte akzeptierte Lösung zu implementieren:
... aber das Problem bleibt bestehen. Nach dem Hinzufügen / Entfernen des Ursprungs erhalte ich immer noch den gleichen Fehler.
git config --global user.name "Your Name Here"
Antworten:
Befolgen Sie die Schritte zum Einrichten von SSH-Schlüsseln hier: https://help.github.com/articles/generating-ssh-keys
ODER
quelle
git remote set-url origin https://{username}:{password}@github.com/...
git remote -v
error: cannot spawn sh: No such file or directory
Nachricht ...Ich hatte genau das gleiche Problem. Dieses Problem trat auf, als ich mit der HTTPS-URL geklont und dann versucht habe, die Änderungen mit Git Bash unter Windows zu übertragen, indem ich:
Als ich jedoch die SSH-URL zum Klonen verwendete, trat dieses Problem nicht auf:
quelle
python:3.7-slim
. Es ist also nicht Windows-bezogen.Beachten Sie Folgendes, wenn Sie stattdessen diesen Fehler erhalten:
Dann müssen Sie Ihr Git auf die Version
2.16
oder höher aktualisieren .quelle
Für mich hat nichts von dem oben vorgeschlagenen funktioniert, ich benutze
git pull
von Jenkins Shell-Skript und anscheinend nimmt es falschen Benutzernamen. Ich habe Ewigkeiten verbracht, bevor ich einen Weg gefunden habe, das Problem zu beheben, ohne auf SSH umzusteigen.Erstellen Sie in Ihrem Benutzerordner die .gitconfig-Datei (falls Sie diese noch nicht haben) und geben Sie Ihre Anmeldeinformationen in das folgende Format ein :
https://user:[email protected]
, Weitere Informationen . Nach dem Link Ihrer .gitconfig-Datei zu diesen Anmeldeinformationen war es in meinem Fall:[credential] helper = store --file /Users/admin/.git-credentials
Jetzt wird git diese Anmeldeinformationen immer verwenden, egal was passiert. Ich hoffe es wird jemandem helfen, so wie es mir geholfen hat.
quelle
[credential] helper = store --file /..../.git-credentials
in.git/config
in meinem ArbeitsverzeichnisIch habe meine Antwort hier gefunden :
Bearbeiten
~/.gitconfig
und fügen Sie Folgendes hinzu:Obwohl es ein anderes Problem löst, ist der Fehlercode der gleiche ...
quelle
Wenn Sie weiterhin https anstelle von ssh verwenden möchten, geben Sie aus Sicherheitsgründen nicht Ihren Benutzernamen und Ihr Kennwort ein.
Sie können auch versuchen, Github OAuth Token , dann können Sie tun
git config remote.origin.url 'https://{token}@github.com/{username}/{project}.git'
odergit remote add origin 'https://{token}@github.com/{username}/{project}.git'
Das funktioniert bei mir!
quelle
Dieser Fehler kann auch auftreten, wenn versucht wird, eine ungültige HTTP-URL zu klonen. Dies ist beispielsweise der Fehler, den ich beim Versuch habe, eine GitHub-URL zu klonen, die einige Zeichen entfernt war:
Es passierte jedoch tatsächlich in Emacs, sodass der Fehler in Emacs folgendermaßen aussah:
Anstelle eines hilfreichen Fehlers, der besagte, dass es unter dieser URL kein solches Repo gab, gab es mir das und schickte mich auf eine wilde Gänsejagd, bis ich schließlich feststellte, dass die URL falsch war.
Dies ist mit Git Version 2.7.4.
Ich poste das hier, weil es mir vor einem Monat und gerade jetzt passiert ist und mich wieder auf die gleiche wilde Gänsejagd geschickt hat. > :(
quelle
Kurze Antwort:
Ignorieren Sie die ersten drei Zeilen, wenn es sich nicht um ein neues Repository handelt.
Längere Beschreibung:
Hatte gerade das gleiche Problem, da mir keine der oben genannten Antworten geholfen hat, habe ich beschlossen, diese Lösung zu veröffentlichen, die für mich funktioniert hat.
Einige Anmerkungen:
Als Befehlszeilentool habe ich GitShell verwendet (für Windows verwende ich Terminal.app auf Mac).
GitShell ist das offizielle GitHub-Tool und kann von https://windows.github.com/ heruntergeladen werden.
Hoffe, das hilft jedem, der das gleiche Problem hat.
quelle
Ich habe dies behoben, indem ich eine neuere Version von Git installiert habe. Die von mir installierte Version ist 2.10.2 von https://git-scm.com . Siehe den letzten Beitrag hier: https://www.bountysource.com/issues/31602800-git-fails-to-authenticate-access-to-private-repository-over-https
Mit dem neueren Git Bash wird das Fenster des Anmeldeinformationsmanagers geöffnet und Sie können Ihren Benutzernamen und Ihr Passwort eingeben, und es funktioniert!
quelle
Dies ist ein Problem mit Ihren gespeicherten Anmeldeinformationen im Cache für Systemanmeldeinformationen. Sie haben wahrscheinlich die Konfigurationsvariable 'credential.helper' auf wincred oder winstore gesetzt und können sie nicht löschen. Wenn Sie die Systemsteuerung starten und das Applet "Credential Manager" starten, suchen Sie im Abschnitt "Allgemeine Anmeldeinformationen" mit der Bezeichnung "git: https://github.com " nach Elementen . Wenn Sie diese löschen, wird das nächste Mal neu erstellt, aber das Hilfsprogramm für Anmeldeinformationen fragt Sie nach Ihren neuen Anmeldeinformationen.
quelle
git config --global -l | grep credential
. Wenn etwas ausgegeben wird, ist dies das Dienstprogramm, das versucht, Ihre gespeicherten Anmeldeinformationen beim Push an den Server weiterzuleiten.git remote add origin https://github.com/username/Hello-World.git
dasusername
die gebunden ist an dieser git Repo - Link wird Ärger machen, ich glaube nicht , meine eigenen Benutzernamen hier Probleme macht. Soweit ich weiß, hilft Credential Manager bei der Verwaltung persönlicher Anmeldeinformationen, nicht der Anmeldeinformationen des Repositorys.Ersetzen Sie Ihre Remote-URL folgendermaßen:
quelle
TL; DR: Überprüfen Sie, ob Sie lesen / schreiben können
/dev/tty
. Wenn nein, und Siesu
die Shell zum Öffnen verwendet haben , überprüfen Sie, ob Sie sie richtig verwendet haben.Ich hatte das gleiche Problem, aber unter Linux, und ich habe das Problem gefunden. Ich habe meine Anmeldeinformationen nicht gespeichert, daher gebe ich sie immer bei der Eingabeaufforderung ein:
Die Art und Weise, wie Git mit http (s) -Verbindungen
/usr/lib/git-core/git-remote-https
umgeht, können Sie hier sehen:Also habe ich versucht, es direkt zu nennen:
und das Ergebnis:
Und hier kam es zu mir:
git-remote-https
versucht, Anmeldeinformationen über zu lesen,/dev/tty
also habe ich getestet, ob es funktioniert:Aber in einem anderen Terminal:
Ich wusste, dass ich mit zu diesem Benutzer gewechselt bin,
su
also habe ich die Shell verlassen, um zu sehen, wie und fand heraus, dass ich den Befehl verwendet habe,su danman -
also habe ich ihn erneut getestet:Ich habe die Nachricht wahrscheinlich ignoriert und weitergearbeitet, aber das war der Grund. Als ich mit dem richtigen gewechselt habe, hat
su - danman
alles gut funktioniert:Danach begann git richtig zu arbeiten
quelle
Für diejenigen, die diesen Fehler in einer Jenkins-Pipeline erhalten, kann er mithilfe eines SSH-Agent- Plugins behoben werden . Wickeln Sie dann Ihre Git-Befehle in etwa Folgendes ein:
quelle
Versuchen Sie es mit einer normalen Windows-Shell wie CMD.
quelle
Früher, als mir keine Erlaubnis zum Zugriff auf das Repo erteilt wurde, hatte ich gitlab auch den SSH-Pubkey hinzugefügt. An dem Punkt, an dem ich auf das Repo zugreifen und den Go-Mod-Anbieter ausführen konnte, war das gleiche Problem wie bei Ihnen. (vielleicht wegen Cache)
Nach einer Weile entscheide ich mich, den SSH-Schlüssel und die Eingabeaufforderungen des Terminals zu entfernen und Benutzername und Passwort einzugeben. Dann ist alles in Ordnung!
quelle
Ich hatte das gleiche Problem in IntelliJ IDE und für mich funktionierte nichts von den oben vorgeschlagenen. Für mich hat es funktioniert, den Zugriff des Git-Repositorys von privat auf öffentlich zu ändern.
quelle
Wenn Sie die CreativeMagic-Lösung ausprobieren, wird das Problem mit den Anmeldeinformationen bestätigt:
Eingabeaufforderung >>> Benutzername für ' https://github.com '
Also habe ich meine Ursprungs-URL mit geändert
und
quelle