it-swarm.com.de

Wie kann ich unter einem anderen Benutzernamen auf GitHub übertragen?

Ein Freund und ich teilen meinen Computer. Ich habe GitHub mit der Git-bash-Shell unter Windows 7 angestoßen. Nun befinden wir uns in einem anderen Projekt auf diesem Computer und ich muss sie dazu bringen, auf ihr Konto zu drücken. Es wird jedoch immer 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
75
at.

Wenn Sie einen anderen Windows-Benutzer verwenden, sind Ihre SSH-Schlüssel- und Git-Einstellungen unabhängig.

Wenn dies keine Option für Sie ist, sollte Ihr Freund Ihren SSH-Schlüssel zu Ihrem Github-Konto hinzufügen.

Obwohl die vorherige Lösung Sie weiterhin als Sie selbst pushen lässt, können Sie jedoch in ihr Repo einsteigen. Wenn Sie dies nicht wünschen und in einem anderen Ordner auf demselben PC arbeiten möchten, können Sie den Benutzernamen und die E-Mail-Adresse in einem Ordner mit git lokal einrichten, indem Sie das Flag -g des Befehls config entfernen:

git config user.name her_username
git config user.email her_email

Alternativ, wenn Sie das https-Protokoll übertragen, fordert Github jedes Mal zur Eingabe eines Benutzernamens/Kennworts auf (sofern Sie keinen Kennwortmanager verwenden).

60
Simon Boudrias

Das hat für mich funktioniert, es wird nach Benutzername und Passwort gefragt

git config --local credential.helper ""
git Push Origin master
85
s-hunter

Ich richte einen SSH-Alias ​​mit einer benutzerdefinierten IdentityFile ein und schrieb den Origin um, um meinen benutzerdefinierten me-github-Hostnamen zu verwenden.

#when prompted enter `id_rsa_user1` as filename
ssh-keygen -t rsa

# ~/.ssh/config
Host user1-github
HostName github.com
Port 22
User git
IdentityFile ~/.ssh/id_rsa_user1

#check original remote Origin url
git remote -v
Origin [email protected]:user1/my-repo.git

#change it to use your custom `user1-github` hostname
git remote rm Origin
git remote add Origin [email protected]:user1/my-repo.git
17
chovy

Sie können Push mit einem anderen Konto verwenden. Wenn Ihr Konto beispielsweise A ist und in .gitconfig gespeichert ist und Sie Konto B verwenden möchten, das der Besitzer des Repos ist, das Sie pushen möchten.

Konto B: B_Benutzername, B_Kennwort
Beispiel für eine SSH-Verknüpfung: https://github.com/B_Benutzername/Projekt.git

Das Konto Push mit B lautet:

$ git Push https://'B_user_name':'B_password'@github.com/B_user_name/project.git

Um das Konto in .gitconfig anzuzeigen

  1. $git config --global --list
  2. $git config --global -e (auch um das Konto zu ändern)
16
thotruong

Wenn Sie nach dem Ausführen von git Push Git nach einem Kennwort von user fragen, aber Sie möchten als new_user drücken, möchten Sie git config remote.Origin.url verwenden:

$ git Push
[email protected]:either/branch/or/path's password:

Verwenden Sie an diesem Punkt ^C, um git Push zu beenden, und verwenden Sie folgend, um als new_user zu drücken.

$ git config remote.Origin.url
[email protected]:either/branch/or/path

$ git config remote.Origin.url [email protected]:either/branch/or/path

$ git Push
[email protected]:either/branch/or/path's password:
13

Wenn Sie anstelle einer HTTPS-URL eine SSH-URL ([email protected]:username/projectname.git) verwenden, können Sie mit der Umgebungsvariablen $GIT_SSH_COMMAND vorübergehend einen anderen SSH-Schlüssel angeben:

$ GIT_SSH_COMMAND="ssh -i different_private_key" git Push

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 Seite SSH-Schlüssel in den Kontoeinstellungen). Wenn Sie diesen SSH-Schlüssel zum Push in das Repository verwenden, wird der Push als von diesem Benutzer stammend behandelt.

10
David Moles

Während des Klonens ist es einfach, die git-URL mit Ihrem Benutzernamen zu verwenden. Beim Festschreiben wird das neue Benutzerpasswort abgefragt.

Z.B: 

git clone https: //[email protected]/username/reponame.git

git clone https: //[email protected]/username/reponame.git

wenn das dein problem ist

remote: Permission to username1/repo.git denied to username2.
fatal: unable to access 'https://github.com/username1/repo.git/':
The requested URL returned error: 403

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 die Berechtigungsinformationen von Keychain entfernen. Diese Lösung brauchte mehrere Stunden, um herauszufinden, ob ich auch ein Zertifikat in meinem Schlüsselbund hatte.

Öffnen Sie den Schlüsselbund-Zugriff, klicken Sie auf Alle Elemente und suchen Sie nach Git. Löschen Sie alle Schlüsselbunde

6
Muyide Ibukun

Gehen Sie zu Credential Manager Gehen Sie zu Windows Credentials Löschen Sie die Einträge unter Generic Credentials Versuchen Sie erneut, eine Verbindung herzustellen.

5
Deepak

Wie bereits erwähnt, können Sie verwenden 

git config user.name her_username
git config user.email her_email

um den Benutzernamen und die E-Mail-Adresse manuell für ein einzelnes Repo festzulegen, müssen Sie den folgenden Befehl hinzufügen:

git commit --amend --reset-author

wenn Sie bereits vor der Änderung versucht haben, Push auszuführen. Andernfalls werden die Änderungen nicht in der Konfigurationsdatei angezeigt.

2
Martin819

Ich habe eine Maschine verwendet, um Code an zwei verschiedene GitHub-Konten mit unterschiedlichen Benutzernamen zu übertragen. Angenommen, Sie haben bereits ein Konto eingerichtet und möchten ein neues Konto hinzufügen:

  1. Neuen SSH-Schlüssel generieren ssh-keygen -t rsa -C "[email protected]"
  2. Speichern Sie es, aber vergessen Sie nicht, das Vorhandene id_rsa zu überschreiben. Geben Sie ihm einen anderen Namen, z. id_rsa_another
  3. Kopieren Sie den Inhalt des Schlüssels in Ihr GitHub-Konto:

Einstellungen -> SSH- und GPG-Schlüssel -> Neuer SSH-Schlüssel -> Geben Sie eine Bezeichnung und eine Einfügung der Schlüssel -> SSH-Schlüssel hinzufügen

  1. Fügen Sie den Schlüssel zum SSH-Agenten hinzu: ssh-add ~/.ssh/id_rsa_another
  2. Einrichten eines GitHub-Hosts: Erstellen Sie eine Konfigurationsdatei mit touch ~/.ssh/config und bearbeiten Sie die Datei, indem Sie Ihren Konten Konfigurationen zuweisen:
#first account
Host github.com-first
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa

#another account
Host github.com-another
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_another

Nun sollten Sie in der Lage sein, Push von verschiedenen Konten abhängig zu machen, je nachdem, welchen Schlüssel Sie dem ssh-Agenten hinzufügen, d. H., Um Ihr erstes Konto zu verwenden, tun Sie ssh-add ~/.ssh/id_rsa.

Möglicherweise möchten Sie auch Ihre E-Mail-Adresse ändern:

git config --global user.email "[email protected]"

oder bereinigen Sie die ssh-Schlüssel im Falle eines Berechtigungsfehlers, wenn Sie Code in eines der Konten einfügen:

ssh-add -D

1

git config user.name ändert nur den Namen, den ich begebe. Ich kann immer noch nicht schieben. So habe ich es gelöst, und ich denke, es ist ein einfacher Weg für mich.

  1. Generieren Sie einen SSH-Schlüssel unter dem gewünschten Benutzernamen auf dem Computer, den Sie verwenden möchten https://help.github.com/articles/connecting-to-github-with-ssh/

  2. Fügen Sie diesen Schlüssel dem github-Benutzerkonto hinzu, zu dem Sie Push vornehmen möchten https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/

  3. Wählen Sie die Option zum Klonen mit SSH

Sie können jetzt als Benutzer dieses Repo eingeben.

1
Yang Fang

Wenn Sie https://desktop.github.com/ haben
Sie können dann zu Einstellungen (oder Optionen) -> Konten gehen
und dann abmelden und anmelden.

1
Honest Abe

Wenn unter Windows und Benutzer Git für Windows und manager für die Verwaltung der Anmeldeinformationen (aka Git-Credential-Manager-for-WindowsLink ) das Problem ist, gibt es keine einfache Möglichkeit, zwischen Benutzern zu wechseln, wenn Sie mit https-Token zu GitHub über OAuth wechseln.

Der Grund ist, dass das Token wie folgt gespeichert wird:

  • Internetadresse: git:https://github.com
  • Benutzername: Personal Access Token
  • Passwort: OAuth_Token

Variationen der URL in Internet Address funktionieren nicht, zum Beispiel:

Die Lösung: namespaces. Dies finden Sie in den Details zur Konfiguration des Git-Credential-Manager-for-Windows:

Ich zitiere daraus:

namespace

Legt den Namespace für gespeicherte Anmeldeinformationen fest.

Standardmäßig verwendet der GCM den Namensbereich 'git' für alle gespeicherten Anmeldeinformationen. Durch die Einstellung dieses Konfigurationswerts kann der global oder für jeden Host verwendete Namespace gesteuert werden.

git config --global credential.namespace name

Speichern Sie nun Ihre Anmeldeinformationen im Windows Credential Manager als:

  • Internetadresse: git.username:https://github.com
  • Benutzername: Personal Access Token
  • Passwort: OAuth_Token

Beachten Sie, dass wir folgende Änderungen vorgenommen haben: git -> git.username (wo Sie username in Ihren tatsächlichen Benutzernamen oder aus Gründen dessen ändern, was Sie als eindeutige Kennung wünschen)

Führen Sie nun in dem Repository, in dem Sie den spezifischen Eintrag verwenden möchten, Folgendes aus:

git config credential.namespace git.username

(Wieder ... ersetzen Sie username durch Ihren gewünschten Wert.)

Ihr .git/config enthält jetzt:

[credential]
    namespace = git.username

Et voilá! Die richtigen Anmeldeinformationen werden aus dem Windows-Anmeldeinformationsspeicher abgerufen.

Das ändert natürlich nicht, welcher Benutzer/welche E-Mail-Adresse verwendet wird. Dafür müssen Sie die üblichen user.name und user.email konfigurieren.

1
mementum

Die Benutzer-ID, bei der die Festschreibung erfolgt, wird in der Konfigurationsdatei gespeichert.

gehe zum Anfang des Repositorysvi .git/config

Ändern Sie die nach "[remote" Origin "] angegebene URL-Zeile, um die entsprechende Benutzer-ID zu erhalten

0
wainCam

Sie können eine neue Remote-URL für den anderen Benutzernamen hinzufügen, indem Sie git remote add Origin-username https://[email protected]/repository_name.git verwenden.

Wenn Sie danach git Push -u Origin-username master drücken, werden Sie zur Eingabe des Kennworts aufgefordert.

0
Raman Singh