Ich versuche, sowohl meine eigentlichen "Arbeits" -Repos als auch meine persönlichen Repos auf dem Git-Hub von meinem Computer aus zu bearbeiten.
Das Arbeitskonto wurde zuerst eingerichtet und alles funktioniert einwandfrei.
Mein persönliches Konto kann jedoch nicht auf mein persönliches Repo übertragen werden, das unter einem anderen Konto / einer anderen E-Mail-Adresse eingerichtet ist.
Ich habe versucht, meinen Arbeitsschlüssel in mein persönliches Konto zu kopieren, aber das wirft einen Fehler auf, da ein Schlüssel natürlich nur an ein Konto angehängt werden kann.
Wie kann ich von ihren jeweiligen Github-Anmeldeinformationen zu und von beiden Konten pushen / ziehen?
git
version-control
github
Kevin Whitaker
quelle
quelle
ssh-add ~/.ssh/id_rsa_COMPANY
<br/> um den ssh-agent anzuweisen, ihn zur Verwendung einzuschließen. <hr /> Rest funktioniert für mich mit dem oben genannten Tutorial einwandfrei.Antworten:
Sie müssen lediglich Ihr SSH-Setup mit mehreren SSH-Schlüsselpaaren konfigurieren.
Dieser Link ist leicht zu folgen (Danke Eric): http://code.tutsplus.com/tutorials/quick-tip-how-to-work-with-github-and-multiple-accounts--net-22574
Generieren von SSH-Schlüsseln (Win / msysgit) https://help.github.com/articles/generating-an-ssh-key/
Wenn Sie mit mehreren Repositorys mit unterschiedlichen Personas arbeiten, müssen Sie außerdem sicherstellen, dass in Ihren einzelnen Repositorys die Benutzereinstellungen entsprechend überschrieben werden:
Festlegen des Benutzernamens, der E-Mail-Adresse und des GitHub-Tokens - Überschreiben der Einstellungen für einzelne Repos https://help.github.com/articles/setting-your-commit-email-address-in-git/
Hoffe das hilft.
Hinweis: Einige von Ihnen benötigen möglicherweise unterschiedliche E-Mails, um für unterschiedliche Repositorys verwendet zu werden. Ab Git 2.13 können Sie die E-Mail auf Verzeichnisbasis festlegen, indem Sie die globale Konfigurationsdatei bearbeiten, die sich
~/.gitconfig
unter folgender Bedingung befindet:Und dann würde Ihre arbeitsspezifische Konfiguration ~ / work / .gitconfig folgendermaßen aussehen:
Vielen Dank an @alexg, dass Sie mich in den Kommentaren darüber informiert haben.
quelle
Verwenden Sie HTTPS:
Ändern Sie die Remote-URL in https:
und du bist gut zu gehen:
Um sicherzustellen, dass die Commits wie von USERNAME ausgeführt angezeigt werden , können Sie den Benutzernamen und die Benutzer- E- Mail auch für dieses Projekt einrichten :
quelle
user.name
unduser.email
mit der--global
Flagge gesetzt haben, tun Sie einfach, was er oben gesagt hat, um es lokal für nur dieses eine Repo zu setzen. Das hat viele Probleme gelöst. Nun zum Löschen des altenIn Form kommen
Um ein Git-Repo unter einem separaten Github / Bitbucket / was auch immer-Konto zu verwalten, müssen Sie lediglich einen neuen SSH-Schlüssel generieren.
Aber bevor wir beginnen / Schieben repos mit dem zweiten Identität ziehen, wir müssen Sie in Form bringen - nehmen wir an , Ihr System - Setup mit einem typischen
id_rsa
undid_rsa.pub
Schlüsselpaar. Im Moment siehst du sotree ~/.ssh
ausBenennen Sie zunächst dieses Schlüsselpaar. Wenn Sie einen beschreibenden Namen hinzufügen , können Sie sich merken, welcher Schlüssel für welchen Benutzer / welche Fernbedienung verwendet wird
Als nächstes generieren wir ein neues Schlüsselpaar - hier werde ich den neuen Schlüssel benennen
github-otheruser
Wenn wir jetzt schauen, sehen
tree ~/.ssh
wirAls nächstes müssen wir eine
~/.ssh/config
Datei einrichten , die unsere Schlüsselkonfigurationen definiert. Wir erstellen es mit den richtigen Lese- / Schreibberechtigungen für EigentümerÖffnen Sie das mit Ihrem bevorzugten Editor und fügen Sie den folgenden Inhalt hinzu
Vermutlich sind einige Repos mit Ihrer primären Github-Identität verknüpft. Aus diesem Grund ist der "Standard" github.com
Host
so eingerichtet, dass er Ihrenmainuser
Schlüssel verwendet. Wenn Sie nicht ein Konto einem anderen vorziehen möchten, zeige ich Ihnen, wie Sie vorhandene Repos auf Ihrem System aktualisieren, um eine aktualisierte SSH-Konfiguration zu verwenden.Fügen Sie Ihren neuen SSH-Schlüssel zu github hinzu
Gehen Sie zu github.com/settings/keys , um Ihren neuen öffentlichen Schlüssel hinzuzufügen
Sie können den Inhalt des öffentlichen Schlüssels abrufen, indem Sie ihn in github kopieren / einfügen
Jetzt ist Ihre neue Benutzeridentität vollständig eingerichtet. Im Folgenden zeigen wir Ihnen, wie Sie sie verwenden.
Dinge erledigen: ein Repo klonen
Wie kommt das zusammen, um mit Git und Github zu arbeiten? Da Sie kein Huhn ohne Ei haben können, werden wir uns mit dem Klonen eines vorhandenen Repos befassen. Diese Situation kann auf Sie zutreffen, wenn Sie ein neues Github-Konto für Ihren Arbeitsplatz haben und einem Unternehmensprojekt hinzugefügt wurden.
Nehmen wir an, es
github.com/someorg/somerepo
existiert bereits und Sie wurden hinzugefügt - das Klonen ist so einfach wieDieser fettgedruckte Teil muss mit dem
Host
Namen übereinstimmen, den wir in Ihrer~/.ssh/config
Datei eingerichtet haben. Das verbindet git richtig mit dem entsprechendenIdentityFile
und authentifiziert dich richtig mit githubDinge erledigen: ein neues Repo erstellen
Nun, da Sie kein Huhn ohne Ei haben können, werden wir versuchen, ein neues Repo auf Ihrem sekundären Konto zu veröffentlichen. Diese Situation gilt für Benutzer, die mit ihrem sekundären Github-Konto neue Inhalte erstellen.
Nehmen wir an, Sie haben bereits ein wenig vor Ort gearbeitet und sind jetzt bereit, auf Github umzusteigen. Sie können mir folgen, wenn Sie möchten
Konfigurieren Sie nun dieses Repo so, dass es Ihre Identität verwendet
Machen Sie jetzt Ihr erstes Commit
Überprüfen Sie das Commit, um festzustellen, ob Ihre neue Identität mithilfe des Git-Protokolls verwendet wurde
Okay, Zeit zum Github zu drängen! Da github noch nichts über unser neues Repo weiß, gehen Sie zuerst zu github.com/new und erstellen Sie Ihr neues Repo - nennen Sie es somerepo
Um Ihr Repo so zu konfigurieren, dass es mit der richtigen Identität / den richtigen Anmeldeinformationen mit Github "spricht", haben wir eine Fernbedienung hinzugefügt. Angenommen, Ihr Github-Benutzername für Ihr neues Konto lautet
someuser
...Dieser fettgedruckte Teil ist absolut kritisch und muss mit dem übereinstimmen, den
Host
wir in Ihrer~/.ssh/config
Datei definiert habenZuletzt das Repo drücken
Aktualisieren Sie ein vorhandenes Repo, um eine neue SSH-Konfiguration zu verwenden
Angenommen, Sie haben bereits ein Repo geklont, möchten aber jetzt eine neue SSH-Konfiguration verwenden. Im obigen Beispiel haben wir Ihre vorhandenen Repos auf dem neuesten Stand gehalten, indem wir Ihr vorheriges
id_rsa
/id_rsa.pub
SchlüsselpaarHost github.com
in Ihrer SSH-Konfigurationsdatei zugewiesen haben. Daran ist nichts auszusetzen, aber ich habe jetzt mindestens 5 Github-Konfigurationen und ich mag es nicht, eine davon als "Standard" -Konfiguration zu betrachten - ich würde lieber jede explizit beschreiben.Bevor wir das hatten
Also werden wir das jetzt aktualisieren (Änderungen in Fettdruck )
Dies bedeutet jedoch, dass jetzt jedes vorhandene Repo mit einer
github.com
Fernbedienung nicht mehr mit dieser Identitätsdatei funktioniert. Aber keine Sorge, es ist eine einfache Lösung.Um ein vorhandenes Repo zu aktualisieren und Ihre neue SSH-Konfiguration zu verwenden, öffnen Sie einfach die Git-Konfigurationsdatei des Repos und aktualisieren Sie die URL!
Aktualisieren Sie das Feld für den Remote-Ursprung (Änderungen in Fettdruck ).
Das ist es. Jetzt können Sie
push
/pull
nach HerzenslustBerechtigungen für SSH-Schlüsseldateien
Wenn Sie Probleme mit Ihren öffentlichen Schlüsseln haben, die nicht richtig funktionieren, sind die Dateiberechtigungen, die für Ihr
~/.ssh
Verzeichnis und die entsprechenden Schlüsseldateien zulässig sind , bei SSH recht strengAls Faustregel gilt, dass alle Verzeichnisse
700
und alle Dateien vorhanden sein sollten600
- dies bedeutet, dass sie nur vom Eigentümer gelesen / geschrieben werden können -, dass keine andere Gruppe / kein anderer Benutzer sie lesen / schreiben kannWie verwalte ich meine SSH-Schlüssel?
Ich verwalte separate SSH-Schlüssel für jeden Host, mit dem ich eine Verbindung herstelle. Wenn also ein Schlüssel jemals kompromittiert wird, muss ich die Schlüssel nicht an jedem anderen Ort aktualisieren, an dem ich diesen Schlüssel verwendet habe. Dies ist wie wenn Sie die Benachrichtigung von Adobe erhalten, dass 150 Millionen der Benutzerinformationen gestohlen wurden - jetzt müssen Sie diese Kreditkarte stornieren und jeden Dienst aktualisieren, der davon abhängt - was für ein Ärgernis.
So
~/.ssh
sieht mein Verzeichnis aus: Ich habe einen.pem
Schlüssel für jeden Benutzer in einem Ordner für jede Domäne, zu der ich eine Verbindung herstelle. Ich benutze.pem
Schlüssel, damit ich nur eine Datei pro Schlüssel brauche .Und hier ist meine entsprechende
/.ssh/config
Datei - natürlich ist das Github-Zeug für die Beantwortung dieser Frage zu Github relevant, aber diese Antwort soll Sie mit dem Wissen ausstatten, Ihre SSH-Identitäten auf einer beliebigen Anzahl von Diensten / Maschinen zu verwalten.Abrufen Ihres öffentlichen SSH-Schlüssels von einem PEM-Schlüssel
Oben haben Sie bemerkt, dass ich nur eine Datei für jeden Schlüssel habe. Wenn ich einen öffentlichen Schlüssel bereitstellen muss, generiere ich ihn einfach nach Bedarf.
Wenn github nach Ihrem öffentlichen ssh-Schlüssel fragt, führen Sie diesen Befehl aus, um den öffentlichen Schlüssel an stdout auszugeben - bei Bedarf kopieren / einfügen
Beachten Sie, dass dies auch der gleiche Vorgang ist, den ich zum Hinzufügen meines Schlüssels zu einem Remotecomputer verwende. Der
ssh-rsa AAAA...
Wert wird in die~/.ssh/authorized_keys
Datei der Fernbedienung kopiertKonvertieren Ihrer
id_rsa
/id_rsa.pub
Schlüsselpaare in das PEM-FormatSie möchten also Ihre Schlüsseldateien zähmen und die Dateisystem-Cruft reduzieren? Das Konvertieren Ihres Schlüsselpaars in eine einzelne PEM ist einfach
Oder wir haben, zusammen mit unseren obigen Beispielen, umbenannt
id_rsa -> github-mainuser
undid_rsa.pub -> github-mainuser.pub
- soUm sicherzustellen, dass wir dies korrekt konvertiert haben, sollten Sie überprüfen, ob der generierte öffentliche Schlüssel mit Ihrem alten öffentlichen Schlüssel übereinstimmt
Nachdem Sie Ihre
github-mainuser.pem
Datei erstellt haben, können Sie Ihre alten Dateiengithub-mainuser
undgithub-mainuser.pub
Dateien sicher löschen. Es ist nur die PEM-Datei erforderlich. Generieren Sie einfach den öffentlichen Schlüssel, wann immer Sie ihn benötigen ^ _ ^PEM-Schlüssel von Grund auf neu erstellen
Sie müssen das private / öffentliche Schlüsselpaar nicht erstellen und dann in einen einzelnen PEM-Schlüssel konvertieren. Sie können den PEM-Schlüssel direkt erstellen.
Lassen Sie uns eine erstellen
newuser.pem
Das Abrufen des öffentlichen SSH-Schlüssels ist dasselbe
quelle
git clone github.com-otheruser:someorg/somerepo.git
muss seingit clone [email protected]:someorg/somerepo.git
(das hinzufügengit@
). Zumindest brauchte ich das.Host github.com
(Newline)User git
(Newline)IdentityFile ...
Indem Sie in Ihrer ~ / .ssh / config verschiedene Host-Aliase für github.com erstellen und jedem Host-Alias einen eigenen SSH-Schlüssel zuweisen, können Sie problemlos mehrere Github-Konten ohne Verwirrung verwenden. Das liegt daran, dass github.com nicht nach Benutzer unterscheidet, was immer nur git ist, sondern nach dem SSH-Schlüssel, mit dem Sie die Verbindung hergestellt haben. Konfigurieren Sie einfach Ihre Remote-Ursprünge mit Ihren eigenen Host-Aliasen. “
Die obige Zusammenfassung wurde mit freundlicher Genehmigung von Kommentaren im Blog-Beitrag unten erstellt.
Ich habe diese Erklärung am klarsten gefunden. Und es funktioniert bei mir zumindest ab April 2012.
http://net.tutsplus.com/tutorials/tools-and-tips/how-to-work-with-github-and-multiple-accounts/
quelle
$ ssh-add ~/.ssh/id_rsa_COMPANY
- siehe Fehler: Berechtigung verweigert (publickey) - BenutzerdokumentationDie Details unter http://net.tutsplus.com/tutorials/tools-and-tips/how-to-work-with-github-and-multiple-accounts/ , auf die mishaba verweist, funktionieren für mich sehr gut.
Von dieser Seite:
Bearbeiten Sie diese Datei dann wie folgt (ein Eintrag pro Konto):
quelle
git clone git@github-COMPANY/repo/name.git
, um den richtigen SSH-Schlüssel zu erhalten.git clone https://github-COMPANY/GitUserName/projectname.git
scheint nicht zu funktionieren. Der Standardschlüssel mit github.com funktioniert einwandfrei.ssh: connect to host github.com port 22: Bad file number fatal: The remote end hung up unexpectedly
. https war bisher der einzige Weg.$ git clone https://github-USER/UserName/test_project_user.git Cloning into test_project_user... error: Couldn't resolve host 'github-USER' while accessing https://github-USER/N UserName/test_project_user.git/info/refs fatal: HTTP request failed
Ich bin mir nicht sicher, ob es mit der Konfigurationsdatei oder der Art und Weise zusammenhängt, wie ich versuche, Ihren Git-Aufruf mit https zu emulieren.Öffnen Sie die Konfigurationsdatei und fügen Sie die folgenden Codes hinzu. (ändern Sie entsprechend Ihrem Konto)
Konto 1
Konto 2
Konto 3
Fügen Sie die Remote-URL wie folgt hinzu
Konto 1
Konto 2
Konto 3
quelle
PreferredAuthentications publickey
?Ich verwende Shell-Skripte, um zu einem Konto zu wechseln, für das ich "aktiv" sein möchte. Im Wesentlichen beginnen Sie mit einem Neuanfang, lassen ein Konto ordnungsgemäß konfigurieren und funktionieren und verschieben diese Dateien dann in einen Namen mit dem richtigen Präfix. Von da an können Sie mit dem Befehl "github" oder "gitxyz" wechseln:
Ich hatte großes Glück damit. Ich habe auch ein Ausführungsskript in Xcode erstellt (für Sie Mac-Benutzer), damit mein Projekt nur erstellt wird, wenn ich die richtige Einstellung habe (da es git verwendet):
Führen Sie das nach Abhängigkeiten platzierte Skript aus (mit / bin / ksh als Shell):
BEARBEITEN: Es wurden Tests für das Vorhandensein neuer Dateien hinzugefügt und alte Dateien nach / tmp kopiert, um den Kommentar von @naomik unten zu adressieren.
quelle
id_rsa
undid_rsa.pub
Schlüssel gelöscht werden, kann er von der Fernbedienung ausgeschlossen werden.Diese Antwort ist für Anfänger (Nicht-Git-Gurus) . Ich hatte vor kurzem dieses Problem und vielleicht bin ich es nur, aber die meisten Antworten schienen ein eher fortgeschrittenes Verständnis von Git zu erfordern. Nachdem ich mehrere Antworten zum Stapelüberlauf einschließlich dieses Threads gelesen habe, sind folgende Schritte erforderlich, um problemlos zwischen GitHub-Konten zu wechseln (z. B. zwei GitHub-Konten, github.com/personal und gitHub.com/work ):
ls -al ~/.ssh
mit der Erweiterung
.pub
anzuzeigen/ aufzulisten.Ihre SSH-Schlüssel sind also Ihre SSH-Schlüssel. Sie sollten also zwei für dieKontenpersonal
und habenwork
. Wenn es nur eine oder keine gibt, ist es an der Zeit, dies zu generieren.- Generieren eines SSH-Schlüssels : Melden Sie sich bei Github an (entweder persönlich oder beruflich), navigieren Sie zu Einstellungen und kopieren Sie die zugehörige E-Mail.
Gehen Sie jetzt zurück zum Terminal und führen
ssh-keygen -t rsa -C "the copied email"
SieFolgendes aus
: Generieren eines öffentlichen / privaten RSA-Schlüsselpaars. Geben Sie die Datei ein, in der der Schlüssel gespeichert werden soll (/.../.ssh/id_rsa):
id_rsa ist der Standardname für den bald zu generierenden SSH-Schlüssel. Kopieren Sie also den Pfad und benennen Sie den Standard um, z
/.../.ssh/id_rsa_work
beim Generieren für Arbeitskonto. Geben Sie ein Passwort ein oder geben Sie es einfach ein, um es zu ignorieren. Sie lesen so etwas wie das Randomart-Bild des Schlüssels: und das Bild. erledigt.Wiederholen Sie diesen Schritt noch einmal für Ihr zweites Github-Konto. Stellen Sie sicher, dass Sie die richtige E-Mail-Adresse und einen anderen SSH-Schlüsselnamen (z. B. id_rsa_personal) verwenden, um ein Überschreiben zu vermeiden.
Zu diesem Zeitpunkt sollten beim
ls -al ~/.ssh
erneuten Ausführen zwei SSH-Schlüssel angezeigt werden.pbcopy < ~/.ssh/id_rsa_work.pub
ersetzen : Ersetzenid_rsa_work.pub
Sie ihn durch Ihren Namen.Nachdem unser SSH-Schlüssel in die Zwischenablage kopiert wurde, kehren Sie zum Github-Konto zurück [Stellen Sie sicher, dass Sie beim Arbeitskonto angemeldet sind, wenn der von Ihnen kopierte SSH-Schlüssel verwendet wird
id_rsa_work
] und navigieren Sie zuEinstellungen - SSH- und GPG-Schlüssel und klicken Sie auf die Schaltfläche Neuer SSH-Schlüssel (nicht neuer GPG-Schlüssel übrigens: D)
Geben Sie einen Titel für diesen Schlüssel ein, fügen Sie den Schlüssel ein und klicken Sie auf SSH-Schlüssel hinzufügen . Sie haben den SSH-Schlüssel jetzt entweder erfolgreich hinzugefügt oder festgestellt, dass er die ganze Zeit vorhanden war, was in Ordnung ist (oder Sie haben eine Fehlermeldung erhalten, weil Sie stattdessen den neuen GPG-Schlüssel ausgewählt habenNeuer SSH-Schlüssel : D).
Bearbeiten der globalen Git-Konfiguration: Der letzte Schritt besteht darin, sicherzustellen, dass die globale Konfigurationsdatei alle Github-Konten kennt (sozusagen).
Führen Sie
git config --global --edit
diese Option aus , um diese globale Datei zu bearbeiten. Wenn sich vim öffnet und Sie nicht wissen, wie Sie sie verwenden sollen, drücken Sie,i
um in den Einfügemodus zu wechseln, bearbeiten Sie die Datei wie folgt und drücken Sie die Esc-Taste, um:wq
den Einfügemodus zu beenden:[inside this square brackets give a name to the followed acc.] name = github_username email = github_emailaddress [any other name] name = github_username email = github_email [credential] helper = osxkeychain useHttpPath = true
Fertig! Wenn Sie jetzt versuchen, ein Repo zu pushen oder zu ziehen, werden Sie gefragt, welches GitHub-Konto mit diesem Repo verknüpft werden soll, und es wird nur einmal gefragt. Die lokale Konfiguration merkt sich diesen Link und nicht die globale Konfiguration, damit Sie arbeiten können auf verschiedenen Repos, die mit verschiedenen Konten verknüpft sind, ohne jedes Mal die globale Konfiguration bearbeiten zu müssen.
quelle
Einfachere und einfachere Lösung, um Verwirrungen zu vermeiden.
Für Windows-Benutzer, mehrere oder unterschiedliche Git-Konten für verschiedene Projekte zu verwenden.
Folgende Schritte: Gehen Sie zur Systemsteuerung und suchen Sie nach Credential Manager. Gehen Sie dann zu Credential Manager -> Windows Credentials
Entfernen Sie nun den Knoten git: https // github.com unter der Überschrift "Allgemeine Anmeldeinformationen"
Dadurch werden die aktuellen Anmeldeinformationen entfernt. Jetzt können Sie jedes Projekt über Git Pull hinzufügen. Es wird nach Benutzername und Passwort gefragt.
Wenn Sie Probleme mit einem anderen Konto haben, gehen Sie genauso vor.
Vielen Dank
siehe Bild
quelle
Ich habe dies gerade für Windows herausgefunden und Anmeldeinformationen für jedes Repo verwendet:
Das Format des Berechtigungsnachweises. https://github.com . teilt dem Helfer für Anmeldeinformationen die URL für die Anmeldeinformationen mit. Der 'useHttpPath' weist den Berechtigungsnachweismanager an, den Pfad für den Berechtigungsnachweis zu verwenden. Wenn useHttpPath weggelassen wird, speichert der Anmeldeinformationsmanager einen Berechtigungsnachweis für https://github.com . Wenn es enthalten ist, speichert der Anmeldeinformationsmanager mehrere Anmeldeinformationen, was ich wirklich wollte.
quelle
Ich fand dieses Juwel sehr nützlich: sshwitch
https://github.com/agush22/sshwitch
http://rubygems.org/gems/sshwitch
Es hilft, SSH-Schlüssel auszutauschen. Denken Sie daran, zuerst alles zu sichern!
Um sicherzustellen, dass Commits die richtige E-Mail-Adresse zugeordnet sind, habe ich sichergestellt, dass die Datei ~ / .gitconfig die richtige E-Mail-Adresse hat.
quelle
Neben dem Erstellen mehrerer SSH-Schlüssel für mehrere Konten können Sie auch Mitarbeiter für jedes Projekt hinzufügen , die dieselben Konto-E-Mails verwenden, und das Kennwort dauerhaft speichern.
Ich habe mehrere Konten mit unterschiedlichen E-Mails eingerichtet und dann jedem Benutzer denselben Benutzer und dieselbe E-Mail-Adresse als einer der Mitarbeiter zugewiesen. Auf diese Weise kann ich auf alle Konten zugreifen, ohne einen SSH-Schlüssel hinzuzufügen oder zu einem anderen Benutzernamen und einer E-Mail für die Authentifizierung zu wechseln.
quelle
Der einfachste und unkomplizierteste Ansatz (IMHO) - keine Konfigurationsdateien, nicht zu viel Aufwand
Erstellen Sie einfach einen weiteren SSH-Schlüssel.
Angenommen, Sie haben ein neues GitHub-Arbeitskonto. Erstellen Sie einfach einen neuen Schlüssel dafür:
Jetzt sollten Sie den alten und den neuen laufen lassen, um sie zu sehen:
Sie müssen die oben genannten Schritte nur einmal ausführen.
Von nun an führen Sie jedes Mal, wenn Sie zwischen den beiden wechseln möchten, einfach Folgendes aus:
Führen Sie den Vorgang erneut aus, um zum alten zu wechseln:
quelle
Eine andere einfachere Möglichkeit besteht darin, mehrere Desktop-Apps zu verwenden, z. B. das Konto A auf dem Github-Desktop und das Konto B auf dem Github Kraken
quelle
IntelliJ Idea verfügt über eine integrierte Unterstützung für https://www.jetbrains.com/help/idea/github.html#da8d32ae
quelle
Falls Sie sich nicht mit der
~/.ssh/config
hier genannten Dateigit config core.sshCommand "ssh -i ~/.ssh/custom_id_rsa"
anlegen möchten , können Sie stattdessen das Repo ausführen, in dem Sie ein Commit von einem anderen Konto durchführen möchten.Der Rest des Setups ist der gleiche:
Erstellen Sie einen neuen SSH-Schlüssel für das zweite Konto mit
ssh-keygen -t rsa -f ~/.ssh -f ~/.ssh/custom_id_rsa
Melden Sie sich mit Ihrem anderen Konto bei github an, gehen Sie zu https://github.com/settings/keys und fügen Sie den Inhalt von ein
~/.ssh/custom_id_rsa.pub
Stellen Sie sicher, dass Sie SSH anstelle von HTTPS als Remote-URL verwenden:
git remote set-url origin [email protected]:upstream_project_teamname/upstream_project.git
quelle
Sie müssen nicht zwei verschiedene Konten für Personal und Arbeit führen. Tatsächlich empfiehlt Github, ein einziges Konto zu führen und beide zusammenzuführen.
Folgen Sie dem unten stehenden Link, um zusammenzuführen, wenn Sie entscheiden, dass nicht mehrere Konten verwaltet werden müssen.
https://help.github.com/articles/merging-multiple-user-accounts/
quelle
Im Gegensatz zu anderen Antworten, wo Sie folgen müssen einige Schritte verwenden zwei verschiedene Github - Konto von derselben Maschine, für mich funktionierte es in zwei Schritten .
Sie müssen nur:
1) Generieren Sie ein öffentliches und privates SSH-Schlüsselpaar für jedes Konto unter
~/.ssh
Standort mit unterschiedlichen Namen und2) Fügen Sie die generierten öffentlichen Schlüssel dem jeweiligen Konto unter
Settings
>>SSH and GPG keys
>> hinzuNew SSH Key
.Verwenden Sie den folgenden Befehl, um die öffentlichen und privaten SSH-Schlüsselpaare zu generieren :
Als Ergebnis der oben genannter Befehle,
id_rsa_WORK
undid_rsa_WORK.pub
Dateien werden für Ihr erstellt wird Arbeitskonto (ex - git.work.com) undid_rsa_PERSONAL
undid_rsa_PERSONAL.pub
wird für Ihr erstellte persönliches Konto (ex - github.com).Kopieren Sie nach der Erstellung den Inhalt aus jeder public (
*.pub
) - Datei und führen Sie Schritt 2 für jedes Konto aus.PS : Es ist nicht erforderlich, einen Hosteintrag für jedes Git-Konto in der
~/.ssh/config
Datei vorzunehmen, wie in anderen Antworten erwähnt, wenn der Hostname Ihrer beiden Konten unterschiedlich ist.quelle
Wenn Sie WSL installiert haben, können Sie zwei separate Git-Konten haben - eines unter WSL und eines unter Windows.
quelle
Sie sollten und dürfen nicht mit einigen allgemeinen Anmeldeinformationen zum Projekt pushen. Führen Sie nach dem Start auf einem neuen Computer die folgenden Schritte aus, um Ihre Gitlab-Anmeldeinformationen einzurichten und korrekt zu verwenden:
All dies wie folgt:
quelle
Erstellen Sie einen neuen SSH-Schlüssel in Ihrem Terminal / Ihrer Befehlszeile.
ssh-keygen -t rsa -C "Ihre-E-Mail-Adresse"
Folgendes wird dann angezeigt:
Generieren eines öffentlichen / privaten RSA-Schlüsselpaars. Geben Sie die Datei ein, in der der Schlüssel gespeichert werden soll (/home/Ihr_Benutzername/.ssh/id_rsa):
Kopieren Sie den Pfad und fügen Sie ihn ein, gefolgt von einem identifizierbaren Namen für die Datei:
4) Sie werden dann um Folgendes gebeten:
5) Sie können jetzt den folgenden Befehl eingeben, um alle SSH-Schlüssel anzuzeigen, die Sie auf Ihrem lokalen Computer haben:
Sie sollten Ihre neue SSH-Schlüsseldatei sehen können. Wie Sie in meinem sehen können, habe ich sowohl id_rsa_test als auch id_rsa_personal.pub.
6) Als nächstes müssen Sie den SSH-Schlüssel kopieren, der in der Datei id_rsa_personal.pub gespeichert ist. Sie können dies in einem Texteditor Ihrer Wahl öffnen. Ich verwende derzeit Atom und habe die Datei mit dem folgenden Befehl geöffnet:
Sie erhalten dann etwas Ähnliches:
ssh-rsa
7) Kopieren Sie diese und navigieren Sie zu Ihrem GitHub-Konto → Einstellungen → SSH- und GPG-Schlüssel. 8) Klicken Sie auf Neuer SSH-Schlüssel. Kopieren Sie den Schlüssel, geben Sie ihm einen Titel und fügen Sie ihn hinzu. 9) Schlüssel vom Terminal hinzufügen
10) Konfigurieren Sie Benutzer und Passwort.
11) Wir sind bereit, uns jetzt zu verpflichten und zu pushen.
quelle