Melden Sie sich über die Befehlszeile mit mehreren Konten bei GitHub an
Lesezeit: 6 Minuten
HerrE
Ich habe ein neues GitHub-Konto eröffnet, um meine geschäftlichen und privaten Repositories zu trennen.
Jetzt ich git init mein lokales Repository und git add remote origin <the repository HTTPS URL>
Ich versuche zu pushen, und es scheint immer die Anmeldeinformationen meines ursprünglichen Kontos zu übernehmen, ohne mich zur Eingabe der Anmeldeinformationen für das neue Konto aufzufordern.
Ich habe versucht, das URL-Format mit zu verwenden
aber das scheint nicht zu helfen: Ich erhalte immer noch eine Fehlermeldung, dass die Anmeldeinformationen für den Benutzernamen des ursprünglichen Kontos ungültig sind.
Wie melde ich mich mit mehreren Sätzen von Anmeldeinformationen an oder wie würde ich irgendwie die ursprünglichen Anmeldeinformationen zurücksetzen, um beim Pushen eine Passwortabfrage zu erzwingen?
Die einzige Möglichkeit, wie ich es jetzt geschafft habe, zu pushen, ist die Angabe von username:[email protected]/ in der URL in der git push Befehl.
Als Alternative könnten Sie ssh-Schlüssel verwenden, um effektiv dieselbe Fernbedienung zu haben, aber für verschiedene Benutzer, z. B. (Server/Personal Server/biz würde dieselbe URL auflösen, aber unterschiedliche Konten verwenden); siehe Antwort hier
– Daniel Keßler
11. Januar 2016 um 22:24 Uhr
ja ich weiß ich kann das. Es ist einfach nicht so praktisch, besonders bei Submodulen usw., da andere möglicherweise nicht dasselbe Hostnamenformat verwenden. Submodule in einem Repo erfordern die URL des Submodul-Repos. Wenn ich es in ssh_config auf meinen Hostnamen setze, erhalten andere diese Informationen und können nicht ziehen, es sei denn, sie setzen ihre eigene ssh_config auf die gleiche Weise. Nur ein Schmerz.
– HerrE
11. Januar 2016 um 22:45 Uhr
CodeWizard
git config --global credential.helper cache
… was Git anweist, Ihr Passwort (standardmäßig) 15 Minuten lang im Speicher zwischenzuspeichern. Du kannst einen längeren Timeout einstellen mit:
Verwenden der .netrc-Datei Die .netrc-Datei ist ein Mechanismus, mit dem Sie angeben können, welche Anmeldeinformationen für welchen Server verwendet werden sollen.
Mit dieser Methode können Sie vermeiden, dass Sie jedes Mal einen Benutzernamen und ein Passwort eingeben, wenn Sie zu Git pushen oder von Git ziehen, aber Ihr Git-Passwort wird im Klartext gespeichert.
Sie können Ihre Anmeldeinformationen mit dem folgenden Befehl speichern
git config credential.helper store
git push http://example.com/repo.git
# Now type username and password and it should be saved by git.
Ich habe kommentiert, dass es für mich nicht bequem ist. Ich möchte herausfinden, wie man die Passwortabfrage zurücksetzt oder erzwingt.
– HerrE
11. Januar 2016 um 23:01 Uhr
Ok, Sie können die Anmeldeinformationen in git config speichern, wenn Sie das meinen.
– CodeWizard
11. Januar 2016 um 23:03 Uhr
habs auch probiert, bekomme aber immer wieder den fehler: remote: Permission to <newUsername>/repo.git denied to <originalUsername>. Ich werde nicht nach einem Passwort gefragt.
– HerrE
11. Januar 2016 um 23:12 Uhr
wenn ich es tue git config credential.helper store es kehrt einfach zurück. Bin mir nicht sicher ob das normal ist. Ich werde nie nach dem Passwort für dieses Konto gefragt.
– HerrE
11. Januar 2016 um 23:17 Uhr
nie eine Passwortabfrage erhalten. Ich habe es versucht git config --global credential.helper "cache --timeout=10" Aber selbst nach den 10 Sekunden werde ich nicht aufgefordert, sondern erhalte nur eine 403
– HerrE
11. Januar 2016 um 23:19 Uhr
HerrE
Der einzige Weg, wie ich pushen konnte, war die Angabe von username:[email protected]/ in der URL im Git-Push-Befehl.
Was passiert, wenn mein Passwort zufällig ein @-Symbol enthält?
– AdityaB
18. Februar 2020 um 20:51 Uhr
hiandbaii
Sie können die Git-Konfiguration innerhalb des von Ihnen verwendeten Repositorys verwenden. Im ${local_repo_folder}/.git/config, fügen Sie dort Ihre Benutzerdaten hinzu. Auf diese Weise können Sie konfigurieren, welcher Benutzer auf Repository-Ebene verwendet werden soll.
Ich habe versucht hinzuzufügen user.username und user.password zur git config: erstens hat es nicht geholfen, und zweitens möchte ich diese info nicht in einer leicht lesbaren datei haben. Aber wenn Sie einen Weg kennen, der funktioniert, würde ich ihn gerne ausprobieren.
– HerrE
11. Januar 2016 um 22:43 Uhr
Es wäre hilfreich, wenn Sie eine Beispielkonfiguration zeigen würden.
– bvdb
20. November 2019 um 11:07 Uhr
Mach das nicht.
– WebWanderer
28. Mai 2021 um 4:30 Uhr
Beachten Sie, dass Ihr Passwort als Klartext gespeichert wird.
– Krishnakanth Alagiri
3. Juni 2021 um 16:09 Uhr
Megha Sahu
Verwenden Sie diesen Befehl, um sich mit einem anderen Konto auf GitHub erneut anzumelden:
git remote set-url origin "remote repository URL"
Aus den Dokumenten:
Wenn Sie –global weglassen oder –local verwenden, wird die Konfiguration nur auf das aktuelle Repository angewendet.
Fügen Sie in Ihrer Shell Ihren Benutzernamen hinzu:
Verwenden von SSH-Anmeldeinformationen unter Unix oder Mac
Konfigurieren Sie Git in Ihrem Arbeitsbereich
SSH-Anmeldeinformationen erstellen/überprüfen
Aktualisieren Sie die Online-Github-Einstellungen
Schritt 1. Konfigurieren Sie Git in Ihrem Workspace
Fügen Sie in Ihrer Shell Ihren Benutzernamen hinzu: git config --global user.name "your_username"
Fügen Sie Ihre E-Mail-Adresse hinzu: git config --global user.email "[email protected]"
Um die Konfiguration zu überprüfen, führen Sie Folgendes aus: git config --global --list
Schritt 2: Erstellen Sie SSH-Anmeldeinformationen
Öffnen Sie Bash oder Terminal.
cd ~/.ssh
ls
Es sollten diese beiden Dateien vorhanden sein: id_rsa und id_rsa.pub. Dies sind Anmeldedaten.
Wenn die E-Mail-Adresse in id_rsa.pub nicht mit der E-Mail-Adresse übereinstimmt, die Sie verwenden möchten, erstellen Sie neue Anmeldeinformationen. Um die Dinge einfach zu halten, verwenden Sie „id_rsa“ für die Datei, in der der Schlüssel gespeichert werden soll, und erstellen Sie eine Passphrase zum Speichern für später ssh-keygen -t rsa -C "[email protected]"
Speichern Sie Ihre Passphrase an einem sicheren Ort, um sie beim Drücken zu verwenden, oder Sie müssen dies erneut tun.
Schritt 3: Aktualisieren Sie die Online-Github-Einstellungen
vim ~/.ssh/id_rsa.pub
Kopieren Sie den Inhalt von id_rsa.pub und fügen Sie ihn in GitHub ein Webseite unter Kontoeinstellungen > SSH- und GPG-Schlüssel. Kopieren Sie alles genau so, wie es angezeigt wird, ohne zusätzliche Leerzeichen oder Linien. Geben Sie diesen Anmeldeinformationen einen Namen, um Sie daran zu erinnern, von welchem Computer sie stammen.
Versuchen git push wieder
Fehlerbehebung
Wenn Sie eine Warnung erhalten, dass die Berechtigungen zu offen sind Permissions 0644 dann versuche diese:
Legen Sie die Berechtigungen für Ihren privaten Schlüssel fest: chmod 400 ~/.ssh/id_rsa
Vergewissere dich ~/.ssh/config zeigt auf den richtigen privaten Schlüssel
Da die Authentifizierung mit Benutzername und Passwort von Github seit August 2021 eingestellt wurde, können wir uns nur über SSH-Schlüssel oder Personal Access Token authentifizieren. Ich habe die Option Personal Access Token ausprobiert. Aber während der Benutzung git push Befehl, gab es keine Eingabeaufforderung für die PAT. Folgendes hat bei mir funktioniert (Windows 10).
Gehen Sie danach zu Credential Manager und aktualisieren Sie die Anmeldeinformationen für Github mit dem neuen Benutzernamen und Passwort. Demo-Bild
Nun, wenn Sie das versuchen git push Befehl, werden Sie aufgefordert, Ihre PAT zur Authentifizierung einzugeben. Sie können Ihr PAT generieren, indem Sie zu your [Github profile]->Einstellungen->Entwicklereinstellungen.
11447200cookie-checkMelden Sie sich über die Befehlszeile mit mehreren Konten bei GitHub anyes
Als Alternative könnten Sie ssh-Schlüssel verwenden, um effektiv dieselbe Fernbedienung zu haben, aber für verschiedene Benutzer, z. B. (Server/Personal Server/biz würde dieselbe URL auflösen, aber unterschiedliche Konten verwenden); siehe Antwort hier
– Daniel Keßler
11. Januar 2016 um 22:24 Uhr
ja ich weiß ich kann das. Es ist einfach nicht so praktisch, besonders bei Submodulen usw., da andere möglicherweise nicht dasselbe Hostnamenformat verwenden. Submodule in einem Repo erfordern die URL des Submodul-Repos. Wenn ich es in ssh_config auf meinen Hostnamen setze, erhalten andere diese Informationen und können nicht ziehen, es sei denn, sie setzen ihre eigene ssh_config auf die gleiche Weise. Nur ein Schmerz.
– HerrE
11. Januar 2016 um 22:45 Uhr