Je veux utiliser un Push and pull automatiquement GitExtension, sans entrer mon utilisateur et mon mot de passe dans une invite, à chaque fois.
Alors, comment puis-je sauvegarder mes informations d'identification dans GIT?
Courir
git config --global credential.helper store
ensuite
git pull
fournir un nom d'utilisateur et un mot de passe et ces détails seront ensuite mémorisés. Les informations d'identification sont stockées dans un fichier sur le disque, avec les autorisations de disque "uniquement lisible par l'utilisateur", mais toujours en texte clair.
Si vous voulez changer le mot de passe plus tard
git pull
Echouera, car le mot de passe est incorrect, git supprime ensuite l'utilisateur incriminé + le mot de passe du fichier ~/.git-credentials
, afin de l'exécuter à nouveau.
git pull
pour fournir un nouveau mot de passe afin que cela fonctionne comme précédemment.
Vous pouvez utiliser le git config
pour activer le stockage des informations d'identification dans git.
git config --global credential.helper store
Lors de l'exécution de cette commande, lors de la première extraction ou du premier envoi du référentiel distant, vous serez interrogé sur le nom d'utilisateur et le mot de passe.
Ensuite, pour des communications conséquentes avec le référentiel distant, vous n'avez pas besoin de fournir le nom d'utilisateur et le mot de passe.
Le format de stockage est un fichier .git-credentials
, stocké en texte brut.
En outre, vous pouvez utiliser d'autres aides pour le git config credential.helper
, à savoir le cache de mémoire:
git config credential.helper cache <timeout>
qui prend un timeout parameter
facultatif, déterminant pendant combien de temps les informations d’identité seront conservées en mémoire. En utilisant l'assistant, les informations d'identification ne toucheront jamais le disque et seront effacées après le délai spécifié. La valeur default
est 900 seconds (15 minutes).
WARNING: Si vous utilisez cette méthode, les mots de passe de votre compte git seront enregistrés au format plaintext
, dans le global .gitconfig file
, par exemple sous Linux, il sera /home/[username]/.gitconfig
Si cela ne vous convient pas, utilisez plutôt un ssh key
pour vos comptes.
Vous pouvez définir votre nom d'utilisateur et votre mot de passe comme ceci:
git config --global user.name "your username"
git config --global user.password "your password"
Dans Terminal, entrez les informations suivantes:
# Set git to use the credential memory cache
git config --global credential.helper cache
Par défaut, Git mettra votre mot de passe en cache pendant 15 minutes.
Pour modifier le délai d'expiration du cache du mot de passe par défaut, entrez les éléments suivants:
# Set the cache to timeout after 1 hour (setting is in seconds)
git config --global credential.helper 'cache --timeout=3600'
Depuis Aide GitHub
Vous pouvez éditer le fichier ~/.gitconfig
pour qu'il stocke vos informations d'identification .
Sudo nano ~/.gitconfig
Qui devrait déjà avoir
[user]
email = [email protected]
user = gitUSER
Vous devriez ajouter au bas de ce fichier.
[credential]
helper = store
La raison pour laquelle je recommande cette option est qu’elle est globale et que si vous devez à tout moment supprimer l’option, vous savez où aller et la modifier.
UTILISEZ UNIQUEMENT CETTE OPTION SUR VOTRE ORDINATEUR PERSONNEL.
Puis quand tu tire | clone | entrez votre mot de passe git, en général, le mot de passe sera enregistré dans ~/.git-credentials
au format
https://GITUSER:[email protected]
WHERE DOMAIN.XXX POURRAIT ÊTRE GITHUB.COM | BITBUCKET.ORG | AUTRE
Voir Docs
Il suffit de mettre vos informations d'identification dans l'URL comme ceci:
https://Username
:Password
@github.com/myRepoDir/myRepo.git
Vous pouvez stocker cela comme ceci:
git remote add myrepo https://Userna...
... exemple pour tiliser le:
git Push myrepo master
Maintenant, c’est à List les alias d’URL:
git remote -v
... et que la commande pour supprimer l'un d'entre eux:
git remote rm myrepo
Vous pouvez utiliser git-credential-store pour stocker vos mots de passe non chiffrés sur le disque, uniquement protégés par les autorisations du système de fichiers.
Exemple
$ git config credential.helper store
$ git Push http://example.com/repo.git
Username: <type your username>
Password: <type your password>
[several days later]
$ git Push http://example.com/repo.git
[your credentials are used automatically]
Vous pouvez vérifier les informations d'identification stockées dans le fichier ~/.git-credentials
Pour plus d'informations, visitez git-credential-store - Aide pour stocker les informations d'identification sur le disque
Pour le paramétrage global, ouvrez le terminal (de n’importe où) exécuté comme suit:
git config --global user.name "your username"
git config --global user.password "your password"
Par ce biais, tout dépôt git local que vous avez sur votre machine utilisera ces informations.
Vous pouvez configurer individuellement pour chaque dépôt en faisant:
exécuter suivant:
git config user.name "your username"
git config user.password "your password"
Cela n'affecte que ce dossier (car votre configuration est locale).
Vous serez plus en sécurité si vous utilisez l'authentification SSH par rapport à l'authentification par nom d'utilisateur/mot de passe.
Si vous utilisez un Mac, l'authentification du client SSH est intégrée au trousseau MacOS. Une fois que vous avez créé une clé SSH, tapez dans votre terminal:
ssh-add -K ~/.ssh/id_rsa
Cela ajoutera la clé privée SSH au trousseau MacOS. Le client git utilisera ssh lorsqu’il se connectera au serveur distant. Tant que vous avez enregistré votre clé publique ssh sur le serveur, tout ira bien.
Dans ce cas, vous avez besoin de l'assistant d'identification de git pour indiquer à git de mémoriser votre mot de passe et votre nom d'utilisateur GitHub à l'aide de la ligne de commande suivante:
git config --global credential.helper wincred
et si vous utilisez repo en utilisant la clé SSH, vous avez besoin de la clé SSH pour vous authentifier.
Outre la modification du fichier ~/.gitconfig
, vous pouvez le faire si vous demandez:
git config --local --edit
ou
git config --global --edit
git config --local user.name 'your username'
git config --local user.password 'your password'
ou
git config --global user.name 'your username'
git config --global user.password 'your password'
Votre nom d'utilisateur et votre mot de passe peuvent utiliser des caractères qui briseraient votre mot de passe si vous utilisiez des guillemets doubles.
--local
ou --global
signifie que les paramètres de configuration sont enregistrés pour le projet ou pour l'utilisateur du système d'exploitation.
Après avoir parcouru des dizaines de SO posts, blogs, etc., j'ai essayé tous les méthode, et c'est ce que je suis venu avec. Il couvre tout.
Ce sont tous les moyens et outils par lesquels vous pouvez authentifier en toute sécurité git pour cloner un référentiel sans invite de mot de passe interactive .
Vous voulez Just Works ™? C'est la balle magique en argent.
Obtenez votre jeton d'accès (voir la section de la feuille de triche si vous avez besoin des instructions Github ou Gitea pour cela) et définissez-le dans une variable d'environnement (à la fois pour le développement local et le déploiement):
MY_GIT_TOKEN=xxxxxxxxxxxxxxxx
Pour Github, copiez et exécutez ces lignes telles quelles :
git config --global url."https://api:[email protected]/".insteadOf "https://github.com/"
git config --global url."https://ssh:[email protected]/".insteadOf "ssh://[email protected]/"
git config --global url."https://git:[email protected]/".insteadOf "[email protected]:"
Félicitations, maintenant, aucun référentiel d’outil automatisé de clonage d’outil ne sera obstrué par une invite de mot de passe, qu’il utilise https ou l’un des styles d’URL ssh.
Vous n'utilisez pas Github?
Pour les autres plates-formes (Gitea, Github, Bitbucket), il suffit de changer l'URL. Ne changez pas les noms d'utilisateur (bien qu'arbitraires, ils sont nécessaires pour des entrées de configuration distinctes).
Compatibilité
Cela fonctionne localement sous MacOS, Linux, Windows (en Bash), Docker, CircleCI, Heroku, Akkeris, etc.
Plus d'infos
Voir la section ".gitconfig placeOf" de la feuille de recherche.
Sécurité
Voir la section "Sécurité" de la feuille de triche.
.git-credentials
est l'endroit où votre nom d'utilisateur et votre mot de passe sont stockés lorsque vous exécutez git config --global credential.helper store
, ce que suggèrent d'autres réponses, puis tapez votre nom d'utilisateur et votre mot de passe:
https://${username}:${password_or_access_token}@github.com
Donc, afin de sauvegarder le nom d'utilisateur et le mot de passe:
git config —-global credential.helper store
echo “https://${username}:${password_or_access_token}@github.com“ > ~/.git-credentials
Ceci est très utile pour le robot github, par exemple. à résoudre Construit automatiquement une chaîne dans le même référentiel docker en ayant des règles pour une branche différente, puis déclenchez-le en y appuyant dans post_Push
hooker dans le docker hub.
Un exemple de ceci peut être vu ici dans stackoverflow.
Aucune des réponses ci-dessus n'a fonctionné pour moi. Je continuais à obtenir ce qui suit chaque fois que je voulais fetch
ou pull
:
Enter passphrase for key '/Users/myusername/.ssh/id_rsa':
Pour Mac
J'ai réussi à l'empêcher de demander ma phrase secrète en:
vi ~/.ssh/config
_UseKeychain yes
_:wq!
_Pour Windows
J'ai pu le faire fonctionner en utilisant les informations de cet stackexchange: https://unix.stackexchange.com/a/12201/348665
D'après le commentaire de rifrol sur Linux Ubuntu, à partir de ceci réponse :
Sudo apt-get install libsecret-1-0 libsecret-1-dev
cd /usr/share/doc/git/contrib/credential/libsecret
Sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
Certaines autres distributions fournissent le binaire afin que vous n'ayez pas à le construire.
Sous OS X, il est généralement "construit" avec un module par défaut de "osxkeychain", vous l'avez donc gratuitement.