Je veux faire cette commande en une seule ligne:
git pull && [my passphrase]
Comment faire?
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/votre passe dans beaucoup d'endroits ...Exemples d'utilisation pour assistant d'identification
git config credential.helper store
- stocke les identifiants indéfiniment.git config credential.helper 'cache --timeout=3600'
- stocke pendant 60 minutesPour un accès basé sur ssh, vous utiliseriez un 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 à git et d'y inclure les informations d'identification:
git pull https://username:[email protected]/my/repository
Il n'est pas nécessaire que le référentiel soit cloné avec les informations d'identification auparavant, cela signifie que vos informations d'identification ne se retrouvent pas dans .git/config
. (Mais assurez-vous que votre Shell ne vous trahit pas et stocke la ligne de commande dans un fichier d'historique.)
Ne répond pas directement à la question, mais j'ai trouvé cette question lorsque je cherchais un moyen de de ne pas ressaisir le mot de passe chaque fois que je tire sur un serveur distant .
Bien, git
vous permet de mettre en cache vos identifiants pour une durée limitée. Il est personnalisable dans 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, lancez:
$ git config --global credential.helper cache
# Set git to use the credential memory cache
Pour personnaliser le délai de mise en cache, vous pouvez effectuer les opérations suivantes:
$ 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 alors stockées en mémoire pour la durée demandée.
Notez que la manière dont "l'aide" de l'assistant des informations d'identification git "stocke" stocke les mots de passe non chiffrés change avec Git 2.5+ (T2 2014).
Voir commit 17c7f4d par Junio C Hamano (gitster
)
credential-xdg
Ajustez l'exemple de back-end "
store
" de l'assistant d'identification pour respecter les emplacements des fichiers de configuration XDG, le cas échéant.
Le doc dit maintenant:
Si non spécifié:
- les références seront recherchées dans
~/.git-credentials
et$XDG_CONFIG_HOME/git/credentials
, et- les informations d'identification seront écrites dans
~/.git-credentials
s'il existe, ou$XDG_CONFIG_HOME/git/credentials
s'il existe et que l'ancien n'existe pas.