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 "billyeveryteen@example.com"

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



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 "bob@example.com"

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.


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'


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


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 "info@nanhekumar.com"

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

git config  user.name "Nanhe Kumar"
git config  user.email "info@nanhekumar.com"

Ä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://nanhe@bitbucket.org/nanhekumar/myproject.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master

[user]
        name = Nanhe Kumar
        email = info@nanhekumar.com

Dies ist die gründlichste Antwort unter Berücksichtigung des globalen und lokalen Repo-Umfangs.
Jordan Stefanelli
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.