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 git@github.com
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://USER@github.com/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
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.
~/.gitconfig
und$project_root/.git/config
Dateien. Einer dieser beiden ist sicherlich für den Benutzernamen falsch konfiguriert.