Wie wechselt man den Git-Benutzer am Terminal?

46

Ich versuche, ein Projekt über die Befehlszeile in ein Remote-Repository zu verschieben.

In meinem lokalen Verzeichnis drücke ich:

$ git push

und erhalte den folgenden Fehler:

remote: Berechtigung für Benutzername1 / repo.git an Benutzername2 verweigert.
Schwerwiegend: Zugriff auf " https://github.com/username1/repo.git/ " nicht möglich:
Die angeforderte URL hat den Fehler 403 zurückgegeben

Wo username1befindet sich der Benutzername meines Github-Kontos, auf dem sich das Repository befindet, zu dem ich pushen möchte? Dies username2ist ein altes Konto, das ich auf diesem Computer verwendet habe.

Ich verwende OS X Yosemite (10.10.5) auf einem Macbook Air. Und ich würde es vorziehen, https anstelle von ssh zu verwenden .

Wie aktualisiere ich, username1damit ich erfolgreich auf meine Fernbedienung pushen kann?

Bearbeiten: Um klar zu sein, ich spreche nicht nur über das Bearbeiten des config userObjekts, z.

$ git config --global user.name "Billy Everyteen"
$ git config --global user.email "[email protected]"

Sie haben nichts mit Authentifizierung zu tun. Meine Frage befasst sich mit der Benutzerauthentifizierung, die zum Schreiben in mein Remote-Repository erforderlich ist.

Mäher
quelle
Vielen Dank. Das betrifft aber nur das Setzen des Benutzernamens. Keine Authentifizierung. Mit anderen Worten, diese Dokumentation zeigt uns, wie wir den Namen der Personen zuordnen, denen die Commits gutgeschrieben wurden. Tatsächlich wird der Benutzer jedoch nicht zum Pushen von Commits autorisiert.
Mowzer
1
Sie können ihn möglicherweise ändern, indem Sie den unter git-scm.com/docs/gitcredentials dokumentierten Befehl verwenden . Wenn Sie alternativ die Anmeldeinformationen löschen möchten, können Sie sich diese Frage unter stackoverflow.com/questions/15381198/… ansehen .
John
Dies löst das Problem nicht!
Mihail Salari
Was ist, wenn ich die lokalen Git-Einstellungen nicht ändern möchte?
Arkady

Antworten:

42

Zusätzlich zum Ändern des Benutzernamens und der E-Mail vom Terminal mit git config:

$ git config --global user.name "Bob"
$ git config --global user.email "[email protected]"

Sie müssen Autorisierungsinformationen aus dem Schlüsselbund entfernen. Dies ist etwas, mit dem ich auch zu kämpfen hatte, bis ich herausfand, dass ich auch ein Zertifikat in meinem Schlüsselbund hatte.

Öffnen Sie den Schlüsselbundzugriff, klicken Sie auf Alle Elemente und suchen Sie nach git. Sie erhalten folgende Artikel:

Bildschirmfoto

Lösche sie. Versuchen Sie nun, das Repo zu drücken, und git fordert Sie auf, ein Passwort für den Benutzer zu schreiben, und Sie können loslegen.

Sagte Sikira
quelle
1
Was ist mit Windows-Benutzern?
Aks ..
2
Ich habe mehrere Konten, was soll ich tun
Amerrnath
Ich habe das gleiche Problem mit Win7. Ich bin mir nicht sicher, was die Lösung ist :(
Fiddle Freak
21

Für CLI-Benutzer verwenden Sie einfach Folgendes: git config credential.username 'Billy Everytee'

Jackman
quelle
Sie müssen 2FA vorübergehend deaktivieren.
bbaassssiiee
10

Für Windows-Benutzer:
Befolgen Sie die Anweisungen in der
Systemsteuerung unter >> Benutzerkonto >> Anmeldeinformations-Manager >> Windows-Anmeldeinformationen >> Allgemeine Anmeldeinformationen

git-Berechtigungsnachweis entfernen.
Wenn Sie das nächste Mal auf "Repo" klicken, werden Sie nach Ihrem Berechtigungsnachweis gefragt.
Beantworten Sie die Referenz für eine ausführliche Erläuterung

Shubham Chadokar
quelle
Vielen Dank! Das war es, wonach ich unter Windows gesucht habe.
JCF
@JCF Willkommen! Ich bin froh, dass es geholfen hat!
Shubham Chadokar
6

Listen Sie Ihre Git-Konfiguration.

git config --list

Ändern Sie den Benutzernamen und die E-Mail-Adresse global

git config --global user.name "Nanhe Kumar"
git config --global user.email "[email protected]"

Ändern Sie den Benutzernamen und die E-Mail-Adresse für das aktuelle Repo

git config  user.name "Nanhe Kumar"
git config  user.email "[email protected]"

Ändern Sie Ihre Repo-URL, wenn Sie Bit Bucket verwenden.

nano .git/config

Diese Datei wird ungefähr so ​​aussehen. [core] repositoryformatversion = 0 fileMode = false bare = false logallrefupdates = true ignorecase = true precomposeunicode = true [remote "origin"] url = https://[email protected]/nanhekumar/myproject.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master

[user]
        name = Nanhe Kumar
        email = [email protected]
Nanhe Kumar
quelle
Dies ist die gründlichste Antwort unter Berücksichtigung des globalen und lokalen Repo-Umfangs.
Jordan Stefanelli