Ich habe ein Problem mit Git und meinem Terminal.
Hier ist eine Galerie, die Ihnen mein Problem zeigt: http://imgur.com/a/6RrEY
Wenn ich Commits von meinem Terminal aus pushe, sagt git, dass ich sie mit einem anderen Benutzernamen pushe, das ist ein Benutzer aus meiner Organisation (meiner Firma) ohne Commit und es scheint, dass er niemandem gehört: (siehe Galerie erstes Bild)
Dies passiert jedoch nicht, wenn ich Github für Mac verwende. Im Feed sehe ich die Commits, die von mir selbst gepusht wurden.
Das Problem betrifft auch meine persönlichen Repositorys. Mein Terminal sagt, dass ich nicht die Berechtigung habe, Commits auf diese Repositorys zu übertragen (was offensichtlich falsch ist), da es versucht, sie mit diesem Benutzer zu pushen: (siehe Galerie, zweites Bild)
Erraten Sie, was ? Dies ist auch bei Github für Mac nicht der Fall.
Ich habe meinen Computer vor ein paar Tagen auf einen brandneuen umgestellt, also habe ich alle meine SSH-Schlüssel von Github zurückgesetzt und nur einen neuen von Github für Mac generierten zurückgelassen, sodass ich nicht glaube, dass ein Ghost-User / SSH-Schlüssel versteckt ist Irgendwo ist diese Festplatte brandneu: (siehe Galerie drittes Bild)
Meine .gitconfig-Datei ist alles klar, es gibt nur meine Anmeldeinformationen: ( siehe Galerie viertes Bild)
Ich verstehe es wirklich nicht, hilf, StackOverflow, du bist meine einzige Hoffnung.
(Ich entschuldige mich für meine schlechten Gimp-Fähigkeiten und die Star Wars-Referenz)
BEARBEITEN: ssh-add -l
Zeigt nur den guten SSH-Schlüssel an, der von Github für Mac erstellt wurde, und ich habe nur einen Github-Account
EDIT2: Erkenne ssh -T [email protected]
mich als den guten Benutzer.
EDIT3: Nach ein paar Tests sieht es so aus, als ob mein Terminal die Commits mit meinem Benutzernamen ausführt, aber sie mit dem anderen, Github für Mac, festschreibt und mit dem guten Benutzernamen pusht. Diese Situation tritt bei jedem Repo auf, das ich habe / mache (sogar neu) Einsen).
EDIT4: In einem persönlichen Repository git log --pretty="%h %an %ae"
wird mein guter Benutzername angezeigt
EDIT5: Keine Anzeichen von Umgebungsvariablen, die meine Anmeldeinformationen in meinem überschreiben würden env
. Auch wenn ich versuche, diese Variablen mit dem Problem der guten Anmeldeinformationen festzulegen, bleibt das Problem bestehen.
EDIT6: Die Dinge funktionieren normal, wenn ich den Benutzer in den Pfad /.git/config
eines Repositorys zwinge, aber ich denke nicht, dass dies die gute Option ist:http://[email protected]/USER/REPO.git
EDIT7: Wir haben den Git-Benutzer gelöscht, der die Commits für mich gepusht hat, und dies bringt einen weiteren Fehler:remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/USER/REPO.git/'
ENDGÜLTIGE BEARBEITUNG: Ich habe git mit Homebrew installiert, eingegeben git config --global push.default simple
und jetzt werden meine Anmeldeinformationen auch ohne Zwang des Benutzers verwendet. Das ist seltsam. Vielen Dank an alle für Ihre Hilfe, Sie sind großartige Jungs!
~/.gitconfig
und$project_root/.git/config
Dateien. Einer dieser beiden ist sicherlich für den Benutzernamen falsch konfiguriert.~/.gitconfig
ist klar und so ist$project_root/.git/config
. Tatsächlich habe ich dieses Problem bei jedem persönlichen Projekt. Arbeitsprojekte können verschoben werden, da dieser andere Benutzer zu meiner Organisation gehört, die diese Repositorys besitzt.Antworten:
Ich hatte gerade dieses Problem bei der Arbeit. Das integrierte Git, das mit dem Mac geliefert wird oder bei der Installation von xcode zwischengespeichert wird, speichert die Git-Anmeldeinformationen im Schlüsselbund. Die Lösung für mich war:
Schlüsselbundzugriff starten (Spotlight über cmd + Leerzeichen starten, Schlüsselbund eingeben, Eingabetaste drücken)
Wählen Sie oben links unter "Schlüsselanhänger" die Option "Anmelden". Wählen Sie links unter "Kategorie" die Option "Passwörter" aus.
finde den Namen "github" und lösche ihn.
quelle
seahorse
Ubuntu suchen (oder direkt starten) .github identifiziert Sie anhand des SSH-Schlüssels, den es sieht, und nicht anhand einer Einstellung von git.
Daher müssen Sie sicherstellen, dass sich der SSH-Schlüssel Ihres Arbeitskontos nicht in Ihrem Schlüsselbund befindet, wenn Sie versuchen, von Ihrem persönlichen Konto aus zu pushen und umgekehrt.
Verwenden Sie diese Option, um
ssh-add -l
festzustellen, welche Schlüssel sich in Ihrem Schlüsselbund befinden, undssh-add -d <keyfile>
um einen Schlüssel von Ihrem Schlüsselbund zu entfernen. Wenn dies nicht funktioniert, entfernen Sie den 'unerwünschten' SSH-Schlüssel von~/.ssh/config
.Quelle
NB: Github identifiziert Ihr Commit weiterhin nur anhand der E-Mail.
quelle
user.email
korrekten Einstellung dauerhaft verwendet wurde . Ich wünschte, ich könnte fünf Mal upvoten.ssh-add -D
ssh-add -l
bekomme ich eine Antwort, die nicht hilft. Es Typen aus4096 SHA256:lotsOfGibberish,about40chars (RSA)
ich weiß nicht , wie wir diese Informationen.Trotz aller großartigen Optionen, die von anderen Benutzern angeboten wurden, bestand die einzige Möglichkeit, dies zu beheben, darin, git vollständig neu zu installieren und zu tippen
git config --global push.default simple
, um gute Anmeldeinformationen neu zu schreiben.quelle
git config --system --unset credential.helper
Ich habe jetzt beim Push erneut nach meinen GitHub-Anmeldeinformationen gefragt und kann die richtige Benutzer-ID und das richtige Passwort eingeben.git config --system --unset credential.helper
funktioniert nicht unter Windows 10 Git Bash:error: could not lock config file C:/Program Files/Git/mingw64/etc/gitconfig: Permission denied
Ich verwende Windows 10 und hatte heute das gleiche Problem. In meinem Fall wurden meine Anmeldeinformationen für verschiedene Benutzer vom Windows-Anmeldeinformations-Manager gespeichert. Löschen / Deaktivieren von Git-Anmeldeinformationen mit dem folgenden Befehl:
git config --global --unset credential.helper
hat nicht geholfen. Ich musste den Eintrag in Windows manuell löschen, indem ich wie folgt vorging:
Start -> Systemsteuerung ---> Benutzerkonten ---> Verwalten Sie Ihre Anmeldeinformationen ---> Windows-Anmeldeinformationen
Suchen Sie dann nach einem Eintrag wie git: https://github.com und entfernen Sie ihn. Danach funktioniert es gut.
quelle
Der Name und die E-Mail-Adresse des Autors und des Committers (die für GitHub wichtig sind) stammen von:
Wie in
git config
und erwähntgit commit-tree
, können diese Werte jedoch durch Umgebungsvariablen überschrieben werden:Überprüfen Sie diese Variablen also noch einmal.
Aber es sollte eine gute Lösung sein.
Bei Verwendung einer https-URL gebe ich immer den Benutzer an, um sicherzustellen, dass die Authentifizierung mit dem richtigen Benutzer erfolgt.
quelle
git config
Anmeldeinformationen richtig und es sind keine Umgebungsvariablen in meiner/username/.bashrc
Datei festgelegt ...env
' Ausgabe.http://[email protected]/USER/REPO.git
Zuerst wird eine temporäre Lösung ausgeführt und
killall ssh-agent
dann die SSH-Schlüssel hinzugefügt, die für das zu verwendende Konto generiert wurdenssh-add ~/.ssh/id_4shameer
Es wird uns helfen, an mehreren Github-Konten zu arbeiten, wenn wir den Typfehler erhalten
ERROR: Permission to user/repo-git.git denied to username.
quelle
killall
muss der ssh-agent mit neu gestarteteval "$(ssh-agent -s)"
und derssh-add
Befehl mit ausgeführt werdensudo
.Wenn Sie MAC verwenden, gehen Sie zu Keychain Access und entfernen Sie den Eintrag des Benutzers, für den Sie keinen Git-Zugriff wünschen.
quelle
Die Lösung für mich bestand darin, einen Eintrag in meine ~ / .ssh / config-Datei für github hinzuzufügen. Ich musste das tun, weil:
Der Eintrag, den ich hinzugefügt habe, ist:
Ich hatte einen neuen Schlüssel erstellt, der für mein Konto eindeutig ist, und zwar als id_rsa_waterproofpatch. Dieser Eintrag in meiner ssh-Konfiguration gibt an, dass ich für Verbindungen zu github.com diesen Schlüssel präsentieren möchte.
Eine andere Lösung wäre wahrscheinlich gewesen, dass ich mich bei dem anderen Konto angemeldet und den doppelten SSH-Schlüssel gelöscht hätte.
quelle
Ich hatte ein ähnliches Problem und es stellte sich heraus, dass das Problem darin bestand, dass die Datei mit dem öffentlichen Schlüssel meine E-Mail-Adresse in der letzten Zeile enthielt. Das schien die Benutzereinstellung in meiner Konfiguration zu überschreiben. Sobald ich meine E-Mail aus der .pub-Datei entfernt (und erneut in mein Repo hochgeladen) habe, ist Git mit dem richtigen Benutzer verbunden.
quelle
Was für mich funktioniert hat, war die Verwendung der https- URL des Github- Repos anstelle der ssh- URL. Ich ging zur Github-Projektseite, kopierte die https-URL in meine Zwischenablage und fügte sie dann in den zweiten Befehl unten ein:
quelle
Was für ein Schmerz im Hintern!
Problem:
dreht sich aus unbekannten Gründen Git Push hat den falschen Benutzer verwendet. Ich habe ein paar verschiedene Git-Hub-Benutzer-IDs. Ich arbeite für 2 verschiedene Unternehmen und habe auch einen Studentenausweis
Ich arbeite an einem Mac. Hier ist, was ich endlich getan habe
1) Entfernen Sie den credential.helper
ein. Sie müssen herausfinden, wo der credential.helper konfiguriert ist
b. Sobald Sie die richtige Feigen-Datei gefunden haben, entfernen Sie sie wie folgt
Jetzt habe ich in meinem lokalen Repo die .git / config-Datei gehackt
ich habe mich verändert
zu
quelle
In meinem speziellen Fall bestand das Problem darin, dass ich einen
.netrc
Zugriff verwendetegithub.com
und dieser mit einem Token eines anderen Benutzers konfiguriert wurde:quelle
Das Löschen des Schlüsselbunds hat nicht geholfen ... Ich musste
ssh-add -D
den Schlüssel mit hinzufügen und erneut hinzufügenssh-add <keyfile>
quelle
Ich habe dieses Problem gelöst, indem ich die Dateien id_rsa und id_rsa.pub unter MacOS High Sierra entfernt (oder in * .bak umbenannt) habe. Idee von hier .
Ich habe benutzerdefinierte Host-Weiterleitungen in ~ / .ssh / config, die angewendet werden sollten, aber einen falschen Benutzer verwendet haben, bevor ich die beiden Dateien umbenannt habe ...
quelle
Das hat bei mir funktioniert:
quelle
Was hat bei mir funktioniert, als ich das Repo entfernt und wieder hinzugefügt habe:
quelle
Ich habe das gleiche Problem in Windows 10, auch nachdem ich mein Git deinstalliert habe, da @ user542833 sagt, dass es daran liegt, dass der Windows-Cache und Sie die Github-Anmeldeinformationen in Ihren Fenstern entfernen sollten.
Credential Manager
Wenn Sie erneut versuchen zu pushen, fragt Windows nach Ihren Anmeldeinformationen und legt sie erneut festquelle
Ich habe gerade 6 Stunden damit verbracht, dies herauszufinden, als ich versuchte, auf ein neues GitHub-Seiten-Repo für ein neues Konto zu pushen.
Auch nach dem Festlegen der Konfiguration user.name und user.email wird standardmäßig mein Hauptkonto verwendet.
Dies liegt daran, dass der SSH-Schlüssel standardmäßig id_rsa (mein Hauptkonto) lautet.
Um das neue Konto zu verwenden, musste ich Folgendes ausführen:
ssh-add ~/.ssh/my_new_key
Dadurch wird Git beim Drücken der neuen Taste verwendet.
quelle