Frage Wie stelle ich sicher, dass Git mich nicht nach meinem GitHub Benutzernamen und Passwort fragt?


Ich arbeite mit einem Repo auf GitHub und jedes Mal wenn ich versuche, etwas zu schieben, fragt es nach meinem GitHub Benutzernamen und Passwort. Ich will das nicht machen.

Ich habe die Anweisungen anprobiert Stellen Sie Ihre E-Mail in Git ein, nämlich die Git-Variablen github.user und github.token einzurichten, aber das machte keinen Unterschied.

Ich verstehe nicht, warum das passiert.


158
2017-10-14 17:17


Ursprung


Sie müssen das Passwort zwischenspeichern: help.github.com/articles/set-up-git#password-caching - Piotr Usewicz


Antworten:


Sie müssen einen ssh-agent einrichten, für den Sie sich nur einmal authentifizieren müssen. Sehen diese Antwort vorbei an SO für ein Howto.


27
2017-10-14 17:28



Aber diese Lösung ist für Phrasen der ssh-Familie gedacht. Das Problem ist, dass git "git push" benutzt, was nicht den ssh-agent auslöst, nehme ich an. (Ich habe das schon gemacht, also weiß ich, dass es nicht funktioniert.) - picardo
@picardo: Ich habe das gemacht, und es funktioniert tatsächlich. - Daenyth


Hatte heute ein ähnliches Problem: Ich habe Dinge in meiner Arbeitskopie vermasselt, also habe ich beschlossen, das Verzeichnis umzubenennen und mein Projekt erneut von GitHub zu klonen. Aber nachdem ich das getan hatte, musste ich mein Passwort eingeben, um irgendeine Pull / Push-Anfrage zu machen, anstatt die Passphrase nur einmal einzugeben wie früher.

Das war, weil ich heute das https-Protokoll verwendet habe, um das Projekt zu klonen! Um zu überprüfen, welches Protokoll du verwendest, starte einfach

git config -l

und sieh dir die Zeile an, die mit 'remote.origin.url' beginnt.

Protokolle wechseln:

git config remote.origin.url git@github.com:the_repository_username/your_project.git

the_repository_username und your_project sollte durch den entsprechenden Repository-Namen und den Besitzer dieses Repositorys ersetzt werden. Der Benutzername gehört Ihnen, wenn Sie das Repository besitzen, oder der Benutzername des Repository-Eigentümers.


205
2017-08-08 22:36



Es hat für mich funktioniert. Eine Sache ist, dass die URL nicht meinen Benutzernamen enthält, sondern die Repo-Adresse, wie sie auf github erscheint: git@github.com:some-user/repo-name.git - B Seven
Hinweis: Google hat mich hierher gebracht. Ich hatte das remote.origin.url Stellen Sie auf die https-Methode und bemerkte nicht einmal, dass es war https vs ssh Methoden. Diese URL hat mir geholfen, das Offensichtliche zu sehen: Hilfe.github.com/articles/... - Chris K
Gibt es eine Möglichkeit, das Passwort auch einzugeben? - zishe
Q für diejenigen mit Git-Wissen: Irgendein Unterschied (oder Präferenz) zwischen git config remote.origin.url ... oben verwendet, vs. git remote set-url origin ...? - Daryn
Ich konnte mir nicht vorstellen, wie ich einen falschen Ursprung entfernen könnte. Die Antwort ist: git remote rm origin - Vacilando


Wenn Sie HTTPS anstelle von SSH verwenden, können Sie folgendermaßen vorgehen:

  1. Finden Sie Ihre entfernte URL (remote.origin.url) mit

    git config -l
    

    Danke an Sergio Morstabini

  2. Ihre Remote-URL wird folgendermaßen aussehen: https: // {BENUTZERNAME} @ github.com / {BENUTZERNAME} / {REPONAME} .git

  3. Führe diesen Befehl aus:

    git config remote.origin.url https://{USERNAME}:{PASSWORD}@github.com/{USERNAME}/{REPONAME}.git
    

28
2017-12-03 22:40



Mein Benutzername selbst enthält @, hat nicht für mich gearbeitet. - coding_idiot
Aber wenn nicht (Sie brauchen Ihre E-Mail nicht), funktioniert es perfekt! Vielen Dank. - Killah
Wenn Ihr Benutzername ein @ enthält, müssen Sie URL-encodieren. meyerweb.com/eric/tools/dencoder - Tim Bodeit
Sie sollten Ihr Passwort aus Sicherheitsgründen weglassen. - zygimantus
Vorsicht, das Passwort wird im Klartext gespeichert .git/config Datei! - Amro


Ich bevorzuge die Verwendung von HTTPS, ich finde es einfacher und sicherer als das Einrichten der SSH-Schlüssel.

Mit HTTPS können Sie verhindern, dass git Ihren Benutzernamen nach github-Fernbedienungen abfragt:

git config --global url."https://yourusername@github.com".insteadOf "https://github.com"

Und du kannst zumindest die Häufigkeit reduzieren, mit der dein Passwort gefragt wird:

git config --global credential.helper 'cache --timeout=28800'

Wo 28800 sind 8 Stunden. Ich verwende dieses Setup, um mein Passwort nur einmal einzugeben, wenn ich meinen Arbeitstag beginne.

Danach haben Sie diese Einträge in Ihrem ~/.gitconfig

[url "https://yourusername@github.com"]
    insteadOf = https://github.com

[credential]
    helper = cache --timeout=28800

Quelle:

http://git-scm.com/docs/git-credential-cache

http://git-scm.com/docs/git-config


24
2017-11-21 04:27



Es hat wie ein Zauber funktioniert. Vielen Dank. - david euler


Wenn Sie Windows mit HTTPS verwenden, versuchen Sie es mit Git Credential Store - Es verwendet den Windows Credential Store, um Ihren Namen und Ihr Passwort zu speichern.

Windows Credential Store for Git
This application is a small helper app designed to follow the 
git credentials API as defined by the Git Documentation.

Installation
1. Download the git-credential-winstore.exe application
2. Run it! If you have GIT in your PATH, it should just work.

Wenn Sie dann das nächste Mal Ihren Namen und Ihr Passwort eingeben, werden Sie sich diese für Sie merken.


6
2018-02-23 11:54



Vielen Dank. Das Projekt wurde umbenannt in Git-Credential-Manager-für-Windows. - Michael S.


Wenn Sie einen SSH-Schlüssel für Github einrichten, müssen Sie Ihrem Abschnitt einen Abschnitt hinzufügen, wenn es sich nicht um Ihren Standardschlüssel handelt ~/.ssh/config

Host *github.com
    User git
    IdentityFile ~/.ssh/github_id_rsa

5
2017-10-14 19:45





Wenn Sie jedes Mal zur Eingabe Ihres Kennworts aufgefordert werden möchten, aber nicht Ihren Benutzernamen, dann konfigurieren Sie die Fernbedienung als HTTPS mit einem Benutzernamen .. So ..

git config remote.origin.url https://USERNAME@github.com/repo_owner/repo_name

Danach werden Sie jedes Mal aufgefordert, Ihr Passwort einzugeben, aber nicht Ihren Benutzernamen.

So bevorzuge ich es, da ich gerne mein github-Passwort eingeben muss, bevor ich es mit der Welt teile.


5
2017-08-11 03:17