Il est possible de cloner un repository git, en spécifiant le nom d’utilisateur et le mot de passe dans la commande. Exemple:
git clone https://username:[email protected]/file.git
Est-il possible de spécifier également le nom d’utilisateur et le mot de passe en poussant? Pour que, par exemple, l’exécution de git push origin --all
produise un mot de passe. Je veux cela en une seule commande.
(Je suis conscient de la possibilité de configurer des clés et d’autres solutions, mais je veux savoir s’il ya un moyen de continuer à utiliser le nom d’utilisateur et le mot de passe avec une seule commande.) J’utilise Git Bash sous Windows 8.1.
Oui, vous pouvez faire
git push https://username:[email protected]/file.git --all
dans ce cas https://username:[email protected]/file.git
remplace l’ origin
dans git push origin --all
Pour voir plus d’options pour git push
, essayez git help push
Selon la documentation de Git , le dernier argument de la commande git push
peut être le référentiel vers lequel vous voulez pousser:
git push [--all | --mirror | --tags] [-n | --dry-run] [--receive-pack=] [--repo=] [-f | --force] [--prune] [-v | --verbose] [-u | --set-upstream] [ […]]
Et le paramètre de repository
peut être une URL ou un nom distant.
Vous pouvez donc spécifier le nom d’utilisateur et le mot de passe de la même manière que dans votre exemple de commande clone
.
Git ne stockera pas le mot de passe lorsque vous utilisez des URL comme celles-ci. Au lieu de cela, il ne stockera que le nom d’utilisateur, il n’a donc besoin que de vous demander le mot de passe la prochaine fois. Comme expliqué dans le manuel , pour stocker le mot de passe, vous devez utiliser un assistant d’identification externe. Pour Windows, vous pouvez utiliser le Windows Credential Store pour Git . Cet assistant est également inclus par défaut dans GitHub pour Windows .
Lorsque vous l’utilisez, votre mot de passe sera automatiquement mémorisé, il vous suffit donc de le saisir une seule fois. Ainsi, lorsque vous clonez, vous serez invité à entrer votre mot de passe, puis chaque nouvelle communication avec la télécommande ne vous demandera plus votre mot de passe. Au lieu de cela, l’assistant d’identification fournira à Git l’authentification.
Ceci bien sûr ne fonctionne que pour l’authentification via https; Pour l’access ssh ( [email protected]/repository.git
), vous utilisez des clés SSH et celles dont vous vous souvenez en utilisant ssh-agent
(ou le reconstitution de PuTTY si vous utilisez plink).
C’est possible, mais avant git 2.9.3 (août 2016), une git push
imprime l’URL complète utilisée lors du retour au repository cloné.
Cela inclurait votre nom d’utilisateur et votre mot de passe!
Mais pas plus: voir commit 68f3c07 (20 juillet 2016) et commettre 882d49c (14 juil. 2016) par Jeff King ( peff
) .
(Fusionné par Junio C Hamano – gitster
– dans commit 71076e1 , 08 août 2016)
push
: anonymiser l’URL dans la sortie d’étatCommit 47abd85 (fetch: Ssortingp des noms d’utilisateurs de l’URL avant de les stocker, 17/04/2009, Git 1.6.4) a enseigné l’extraction d’anonymiser les URL.
Le principal objective était d’éviter de coller des mots de passe dans les messages de fusion, mais comme effet secondaire, nous évitons également de les imprimer sur stderr.Le côté push n’a pas de problème de fusion, mais il devrait probablement éviter de les imprimer sur stderr . Nous pouvons réutiliser la même fonction d’anonymisation.
Notez que pour que cela se produise, les informations d’identification doivent apparaître sur la ligne de commande ou dans un fichier de configuration git, dont aucun n’est particulièrement sécurisé.
Les utilisateurs devraient donc plutôt utiliser des assistants d’identification, ce qui élimine ce problème.Mais ce n’est pas une excuse pour ne pas améliorer la situation des personnes qui, pour une raison quelconque, finissent par utiliser des informations d’identification intégrées à l’URL.