Ein Freund und ich teilen meinen Computer. Ich habe mit der Git-Bash-Shell unter Windows 7 Pushs an GitHub durchgeführt. Jetzt befinden wir uns in einem anderen Projekt auf diesem Computer und sie muss auf ihr Konto pushen. Aber es wird immer wieder versucht, meinen Benutzernamen zu verwenden und zu sagen, dass ich keinen Zugriff auf ihr Repository habe:
$ git push her_github_repository our_branch
ERROR: Permission to her_username/repository.git denied to my_username.
fatal: The remote end hung up unexpectedly
git config --global user.name her_username
) vor dem Drückengit config --local credential.helper ""
kann den Trick tun.Antworten:
Wenn Sie einen anderen Windows-Benutzer verwenden, sind Ihre SSH-Schlüssel- und Git-Einstellungen unabhängig.
Wenn dies für Sie keine Option ist, sollte Ihre Freundin Ihren SSH-Schlüssel zu ihrem Github-Konto hinzufügen.
Die vorherige Lösung wird Sie zwar weiter wie Sie selbst pushen lassen, aber es wird Ihnen ermöglichen, in ihr Repo zu pushen. Wenn Sie dies nicht möchten und in einem anderen Ordner auf demselben PC arbeiten, können Sie den Benutzernamen und die E-Mail-Adresse lokal in einem Ordner mit git einrichten, indem Sie das
-g
Flag des Befehls config entfernen :Wenn Sie das
https
Protokoll übertragen, fordert Github alternativ jedes Mal zur Eingabe des Benutzernamens / Kennworts auf (es sei denn, Sie verwenden einen Kennwortmanager).quelle
git config --global user.name "Mona Lisa"
Dies hat bei mir funktioniert, es wird nach Benutzername und Passwort gefragt
quelle
helper = cache --timeout=999999
mich auf meine gesetzt.gitignore
und das funktionierte. Aber wie kann ich das zurücksetzen, ohne eine lokale Konfiguration zu ändern?credential.helper
, z. B. den Windows-Anmeldeinformationsspeicher. Dies bedeutet auch, dass jedes Mal , wenn es benötigt wird, nach einem Benutzernamen / Passwort gefragt wird , da nichts konfiguriert ist. Vielleicht können Siecredential.helper
stattdessen auch den Cache konfigurieren (siehe Antwort von @Ciro Santilli) oder hier eine andere Antwort verwenden.Sie können mit einem anderen Konto pushen. Wenn Ihr Konto beispielsweise A ist, das in .gitconfig gespeichert ist, und Sie Konto B verwenden möchten, das der Eigentümer des Repos ist, das Sie pushen möchten.
Konto B : B_Benutzername, B_Kennwort
Beispiel für einen SSH-Link: https://github.com/B_Benutzername/Projekt.git
Der Push mit B- Account lautet:
So zeigen Sie das Konto in .gitconfig an
$git config --global --list
$git config --global -e
(um auch das Konto zu wechseln)quelle
user.name
,user.email
in der lokalen Konfiguration, ich habe mit dem Benutzernamen geklont, und nicht funktioniert; Jetzt funktioniert die letzte Antwort, ohne den Schlüsselbund zu berührenGit 2.9.0 in Windows
. "endlich aber nicht zuletzt" .. so heißt es. Danke dir. Diese Antwort verdient mehr Zustimmung.https://'B_user_name'@github.com/B_user_name/project.git
. Dies sollte zur Eingabe des Passworts von auffordernB_user_name
.Ich habe einen SSH-Alias mit einem benutzerdefinierten Namen eingerichtet
IdentityFile
und den Ursprung neu geschrieben, um meinen benutzerdefiniertenme-github
Hostnamen zu verwenden.quelle
git remote set-url origin git@user1-github:user1/my-repo.git
😊Wenn Sie
[email protected]:username/projectname.git
anstelle einer HTTPS-URL eine SSH-URL ( ) verwenden, können Sie mithilfe der$GIT_SSH_COMMAND
Umgebungsvariablen vorübergehend einen anderen SSH-Schlüssel angeben :Soweit ich das beurteilen kann, kümmert sich GitHub bei SSH-URLs nicht um Benutzernamen, sondern nur um Schlüssel: Wenn ein Benutzerkonto Zugriff auf ein Repository hat und dieses Konto über einen SSH-Schlüssel verfügt (siehe die Seite SSH-Schlüssel im Konto) Einstellungen). Wenn Sie diesen SSH-Schlüssel verwenden, um in dieses Repository zu pushen, wird der Push als von diesem Benutzer stammend behandelt.
quelle
user.name
unduser.email
ingit config
wird das Konto geändert, mit dem ein Commit verbunden istWenn
git push
Git nach dem Ausführen nach einem Kennwort von fragtuser
, Sie aber als pushennew_user
möchten, möchten Sie möglicherweise Folgendes verwendengit config remote.origin.url
:An diesem Punkt verwenden Sie, um
^C
zu beendengit push
und verwenden Sie Folgendes, um als zu drückennew_user
.quelle
git config remote.origin.url https://[email protected]/different_user/repo.git
Während des Klonens ist es einfach, bitte geben Sie die Git-URL mit Ihrem Benutzernamen an. Während Sie diese festlegen, werden Sie nach Ihrem neuen Benutzerpasswort gefragt.
Z.B:
Git-Klon https: //[email protected]/username/reponame.git
Git-Klon https: //[email protected]/username/reponame.git
quelle
fatal: repo not found
.wenn das dein Problem ist
Zusätzlich zum Ändern des Benutzernamens und der E-Mail-Adresse vom Terminal mithilfe der Git-Konfiguration:
Sie müssen Autorisierungsinformationen aus dem Schlüsselbund entfernen. Ich brauchte mehrere Stunden, um diese Lösung herauszufinden. Ich stellte fest, 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. Löschen Sie alle Schlüsselbunde
quelle
Ich habe einen Computer verwendet, um Code auf zwei verschiedene GitHub-Konten mit unterschiedlichem Benutzernamen zu übertragen. Angenommen, Sie haben bereits ein Konto eingerichtet und möchten ein neues hinzufügen:
ssh-keygen -t rsa -C "[email protected]"
id_rsa
. Geben Sie ihm einen anderen Namen, zid_rsa_another
ssh-add ~/.ssh/id_rsa_another
touch ~/.ssh/config
und bearbeiten Sie die Datei, indem Sie Ihren Konten Konfigurationen bereitstellen:Jetzt sollten Sie in der Lage sein, von verschiedenen Konten aus zu pushen, je nachdem, welchen Schlüssel Sie dem SSH-Agenten hinzufügen, dh um Ihr erstes Konto zu verwenden
ssh-add ~/.ssh/id_rsa
.Möglicherweise möchten Sie auch Ihre Benutzer-E-Mail-Adresse ändern:
git config --global user.email "[email protected]"
oder bereinigen Sie SSH-Schlüssel im Falle eines Berechtigungsfehlers, wenn Sie Code in eines der Konten eingeben:
ssh-add -D
quelle
git push
nicht Sie sollten in der Lage sein, nach dem Hinzufügen Ihres Schlüssels zu drückenZum Anmeldeinformations-Manager wechseln Zu Windows-Anmeldeinformationen wechseln Löschen Sie die Einträge unter Allgemeine Anmeldeinformationen. Versuchen Sie erneut, eine Verbindung herzustellen.
quelle
Control Panel\All Control Panel Items\Credential Manager
->Windows Credentials
.Wie bereits erwähnt, können Sie verwenden
Um den Benutzernamen und die E-Mail-Adresse für ein einzelnes Repo manuell festzulegen, müssen Sie diesen Befehl hinzufügen:
wenn Sie bereits versucht haben, vor der Änderung zu pushen. Andernfalls werden die Änderungen nicht in der Konfigurationsdatei angezeigt.
quelle
--reset-author
(mit--
...) setzt den zuletzt konfigurierten Namen / die E-Mail-Adresse beim letzten Commit sowie den neuesten Zeitstempel. Die Änderungen in der Konfigurationsdatei sind davon nicht betroffen.Sie können eine neue Remote-URL für den anderen Benutzernamen mit hinzufügen
git remote add origin-username https://[email protected]/repository_name.git
Wenn Sie danach mit drücken
git push -u origin-username master
, werden Sie zur Eingabe des Kennworts aufgefordert.quelle
git config user.name ändert nur den Namen, den ich festschreibe. Ich kann immer noch nicht pushen. So habe ich es gelöst und ich denke, es ist ein einfacher Weg für mich.
Generieren Sie einen SSH-Schlüssel unter dem Benutzernamen, den Sie auf dem Computer verwenden möchten, den Sie verwenden möchten Https://help.github.com/articles/connecting-to-github-with-ssh/
Fügen Sie diesen Schlüssel dem Github-Benutzerkonto hinzu, das Sie an https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/ senden möchten.
Wählen Sie "Mit SSH klonen"
Sie können diesen Benutzer jetzt in dieses Repo einbinden.
quelle
Unter Windows und dem Benutzer Git für Windows und
manager
zum Verwalten der Anmeldeinformationen (auch bekannt alsGit-Credential-Manager-for-Windows
Link ) besteht das Problem darin, dass es keine einfache Möglichkeit gibt, zwischen Benutzern zu wechseln, wenn Sie über diehttps
Verwendung zu GitHub wechselnOAuth
Token .Der Grund ist, dass das Token gespeichert wird als:
git:https://github.com
Personal Access Token
OAuth_Token
Variationen der URL in
Internet Address
funktionieren nicht, zum Beispiel:git:https://[email protected]
git:https://github.com/username
Die Lösung: Namespaces . Dies finden Sie in den Details zur Konfiguration der
Git-Credential-Manager-for-Windows
:Zitat daraus:
Speichern Sie nun Ihre Anmeldeinformationen im Windows-Anmeldeinformations-Manager wie folgt:
git.username:https://github.com
Personal Access Token
OAuth_Token
Beachten Sie, dass wir Folgendes geändert haben:
git
->git.username
(wo Sieusername
zu Ihrem tatsächlichen Benutzernamen oder aus diesem Grund zu dem wechseln , was Sie als eindeutige Kennung wünschen)Führen Sie nun im Repository, in dem Sie den bestimmten Eintrag verwenden möchten, Folgendes aus:
(Wieder ... durch
username
den gewünschten Wert ersetzen )Ihr
.git/config
Testament enthält jetzt:Et voilá! Die richtigen Anmeldeinformationen werden aus dem Windows-Anmeldeinformationsspeicher abgerufen.
Dies ändert natürlich nichts daran, welcher Benutzer / welche E-Mail pusht. Dafür müssen Sie das übliche
user.name
und konfigurierenuser.email
quelle
git config credential.namespace git.username
wie erwähnt ein (ersetzen Sie den Benutzernamen). Wenn Sie das nächste Mal pushen, werden Sie von git nach den neuen Anmeldeinformationen für den Benutzernamen gefragt.Ich konnte nicht herausfinden, wie ich eine zweite Github-Identität auf einem Computer haben kann (keine dieser Antworten hat für mich funktioniert), aber ich habe herausgefunden, wie ich als ich auf mehrere verschiedene Github-Konten pushen kann.
Push als gleichen Benutzernamen, aber auf verschiedene Github-Accounts
Richten Sie einen zweiten SSH-Schlüssel ( wie folgt) für Ihr zweites Github-Konto ein
Wechsel zwischen Konten also:
Push mit meinem neuen 2. Github Account
Push mit meinem Hauptkonto
quelle
Wenn Sie https://desktop.github.com/ haben
, können Sie zu Einstellungen (oder Optionen) -> Konten gehen
und sich dann abmelden und anmelden.
quelle
Die Benutzer-ID, unter der das Festschreiben erfolgt, wird in der Konfigurationsdatei gespeichert.
Gehen Sie zum Anfang des Repositorys vi .git / config
Ändern Sie die nach "[remote" origin "] aufgeführte URL-Zeile, um die entsprechende Benutzer-ID zu erhalten
quelle
Wenn Sie ssh verwenden und erhalten
Während Sie nicht als Alice_Benutzername pushen möchten, stellen Sie sicher, dass Alice_Benutzername nicht den SSH-Schlüssel Ihres Computers zu seinem Github-Konto hinzugefügt hat.
Ich habe meinen SSH-Schlüssel aus Alice 'Github-Account gelöscht und der Push hat funktioniert.
quelle