Wie gebe ich einen Befehl mit Passwort für git pull ein?

Ich möchte diesen Befehl in einer Zeile ausführen: git pull && [meine Passphrase]

Wie es geht?

Dies ist nicht genau das, wonach Sie gefragt haben, aber für http (s):

  • Sie können das Passwort in .netrc Datei (_netrc auf Windows) setzen. Von dort würde es automatisch abgeholt werden. Es würde mit 600 Berechtigungen in Ihren Home-Ordner gehen.
  • Sie können den Repo auch einfach mit https://user:pass@domain/repo klonen, aber das ist nicht wirklich empfehlenswert, da es Ihren Benutzer / Pass an vielen Stellen zeigen würde …
  • Eine neue Option ist die Verwendung des Credential-Helfers . Beachten Sie, dass die Anmeldeinformationen in der lokalen Konfiguration in Klartext gespeichert werden, indem Sie den Standardberechtigungshelfer verwenden. credential-helper mit wincred kann auch unter Windows verwendet werden.

Anwendungsbeispiele für den Berechtigungsnachweis

  • git config credential.helper store – speichert die Anmeldeinformationen auf unbestimmte Zeit.
  • git config credential.helper 'cache --timeout=3600' – speichert für 60 Minuten

Für den SSH-basierten Zugriff verwenden Sie den SSH-Agenten, der bei Bedarf den SSH-Schlüssel bereitstellt. Dies würde erfordern, Schlüssel auf Ihrem Computer zu erzeugen, den öffentlichen Schlüssel auf dem entfernten Server zu speichern und den privaten Schlüssel zu dem relevanten Schlüsselspeicher hinzuzufügen.

Ich habe eine Möglichkeit gefunden, Anmeldeinformationen für eine https-Verbindung in der Befehlszeile anzugeben. Sie müssen nur die vollständige URL für git pull angeben und die Anmeldeinformationen dort angeben:

 git pull https://username:password@mygithost.com/my/repository 

Sie müssen das Repository nicht zuvor mit den Anmeldeinformationen geklont haben. Dies bedeutet, dass Ihre Anmeldeinformationen nicht in .git/config enden. (Aber stellen Sie sicher, dass Ihre Shell Sie nicht betrügt und die Befehlszeile in einer Verlaufsdatei speichert.)

Die Frage wird nicht direkt beantwortet, aber ich habe diese Frage bei der Suche nach einem Weg gefunden, das Passwort nicht jedes Mal neu einzugeben, wenn ich einen Remote-Server benutze .

Nun, git ermöglicht es Ihnen, Ihre Anmeldeinformationen für eine begrenzte Zeit zwischenzuspeichern. Es ist anpassbar in git config und diese Seite erklärt es sehr gut:

https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux

Führen Sie in einem Terminal Folgendes aus:

 $ git config --global credential.helper cache # Set git to use the credential memory cache 

Um das Cache-Timeout anzupassen, können Sie Folgendes tun:

 $ git config --global credential.helper 'cache --timeout=3600' # Set the cache to timeout after 1 hour (setting is in seconds) 

Ihre Anmeldeinformationen werden dann für die angeforderte Zeitspanne im Speicher gespeichert.

Beachten Sie, dass sich die Art und Weise, wie der Git-Berechtigungshelfer “store” die unverschlüsselten Passwörter speichert, mit Git 2.5+ ändert (Q2 2014).
Siehe commit 17c7f4d von Junio ​​C Hamano ( gitster )

credential-xdg

Optimieren Sie das Beispiel- store Back-End des Credential-Helfers, um die store von XDG-Konfigurationsdateien zu berücksichtigen, wenn sie angegeben werden.

Der Doc sagt jetzt:

Wenn nicht angegeben:

  • Anmeldeinformationen werden von ~/.git-credentials $XDG_CONFIG_HOME/git/credentials und $XDG_CONFIG_HOME/git/credentials gesucht, und
  • Die Anmeldeinformationen werden in ~/.git-credentials $XDG_CONFIG_HOME/git/credentials geschrieben, wenn sie vorhanden sind, oder $XDG_CONFIG_HOME/git/credentials wenn sie vorhanden sind und die erstere nicht.