Je veux faire cette commande en une seule ligne:
git pull && [my passphrase]
Comment faire?
Je veux faire cette commande en une seule ligne:
git pull && [my passphrase]
Comment faire?
Réponses:
Ce n'est pas exactement ce que vous avez demandé, mais pour http (s):
https://user:pass@domain/repo
mais ce n'est pas vraiment recommandé car cela montrerait votre utilisateur / pass dans de nombreux endroits ...Exemples d'utilisation de l'assistant d'identification
git config credential.helper store
- stocke les informations d'identification indéfiniment.git config credential.helper 'cache --timeout=3600'
- magasins pendant 60 minutesPour l'accès basé sur ssh, vous utiliserez l'agent ssh qui fournira la clé ssh en cas de besoin. Cela nécessiterait de générer des clés sur votre ordinateur, de stocker la clé publique sur le serveur distant et d'ajouter la clé privée au fichier de clés approprié.
J'ai trouvé un moyen de fournir des informations d'identification pour une connexion https sur la ligne de commande. Il vous suffit de spécifier l'URL complète de git pull et d'y inclure les informations d'identification:
git pull https://username:password@mygithost.com/my/repository
Vous n'avez pas besoin de faire cloner le référentiel avec les informations d'identification auparavant, cela signifie que vos informations d'identification ne se retrouvent pas .git/config
. (Mais assurez-vous que votre shell ne vous trahit pas et stocke la ligne de commande dans un fichier d'historique.)
:password
partie, vous serez invité à entrer le mot de passe après avoir appuyé sur Entrée. De cette façon, votre mot de passe ne sera pas enregistré dans l'historique bash.
Ne répond pas directement à la question, mais j'ai trouvé cette question lors de la recherche d'un moyen de ne pas ressaisir le mot de passe chaque fois que je tire sur un serveur distant .
Eh bien, git
vous permet de mettre en cache vos informations d'identification pendant une durée limitée. Il est personnalisable git config
et cette page l'explique très bien:
https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux
Dans un terminal, exécutez:
$ git config --global credential.helper cache
# Set git to use the credential memory cache
Pour personnaliser le délai d'expiration du cache, vous pouvez faire:
$ git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)
Vos informations d'identification seront ensuite stockées en mémoire pendant la durée demandée.
Notez que la façon dont l'assistant d'informations d'identification git «stockera» les changements de mots de passe non chiffrés avec Git 2.5+ (Q2 2014).
Voir commit 17c7f4d par Junio C Hamano ( gitster
)
credential-xdg
Ajustez le
store
backend de l'exemple " " de l'assistant d'identification pour honorer les emplacements des fichiers de configuration XDG lorsqu'ils sont spécifiés.
Le doc dit maintenant:
Si non spécifié:
- les informations d'identification seront recherchées à partir de
~/.git-credentials
et$XDG_CONFIG_HOME/git/credentials
, et- les informations d'identification seront écrites
~/.git-credentials
si elle existe, ou$XDG_CONFIG_HOME/git/credentials
si elle existe et que la première n'existe pas.
Ci-dessous cmd fonctionnera si nous n'avons pas @ dans le mot de passe:
git pull https://username:pass@word@mygithost.com/my/repository
Si vous avez @ dans le mot de passe, remplacez-le par% 40 comme indiqué ci-dessous:
git pull https://username:pass%40word@mygithost.com/my/repository