─[$] cat ~/.gitconfig
[user]
name = Shirish Agarwal
email = [email protected]
[core]
editor = leafpad
excludesfiles = /home/shirish/.gitignore
gitproxy = \"ssh\" for gitorious.org
[merge]
tool = meld
[Push]
default = simple
[color]
ui = true
status = auto
branch = auto
Maintenant, je veux mettre mes informations d'identification git pour github, gitlab et gitorious afin que chaque fois je n'ai pas à rechercher les informations d'identification sur le navigateur. Comment cela peut-il être fait pour qu'il soit automatisé?
Je cours zsh
L'approche courante pour gérer l'authentification git consiste à la déléguer à SSH. En règle générale, vous définissez votre clé publique SSH dans le référentiel distant ( par exemple sur GitHub ), puis vous l'utilisez chaque fois que vous en avez besoin pour authentifier. Vous pouvez bien sûr utiliser un agent clé, géré par votre environnement de bureau ou manuellement avec ssh-agent
et ssh-add
.
Pour éviter d'avoir à spécifier le nom d'utilisateur, vous pouvez également le configurer dans SSH, dans ~/.ssh/config
; par exemple j'ai
Host git.opendaylight.org
User skitt
puis je peux cloner en utilisant
git clone ssh://git.opendaylight.org:29418/aaa
(notez l'absence d'un nom d'utilisateur ici).
gitcredentials
Si l'approche SSH ne s'applique pas ( par exemple vous utilisez un référentiel accessible via HTTPS), git a sa propre façon de gérer les informations d'identification, en utilisant gitcredentials
(et généralement git-credential-store
). Vous spécifiez votre nom d'utilisateur en utilisant
git config credential.${remote}.username yourusername
et l'aide aux informations d'identification à l'aide
git config credential.helper store
(spécifiez --global
si vous souhaitez utiliser cette configuration partout).
Ensuite, la première fois que vous accédez à un référentiel, git vous demandera votre mot de passe, et il sera stocké (par défaut dans ~/.git-credentials
). Les accès ultérieurs au référentiel utiliseront le mot de passe stocké au lieu de vous le demander.
Pour ceux qui trouvent cela plus tard - j'ai eu des difficultés avec cela et j'ai finalement fait fonctionner
https/credentials.helper/Ubuntu
git config --global --unset credentials.helper
git config --unset credential.helper
Créer un fichier d'informations d'identification pour chaque dépôt: (à l'intérieur de chaque dépôt)
git config credential.helper 'store --file ~/.git_reponame_credentials'
Je ne dis pas que c'est la meilleure ou la seule façon - mais cela a fonctionné pour moi après plusieurs heures frustrantes.