como configurar nome de usuário e senhas para diferentes repositórios git?
17
─[$] 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
Agora, quero colocar minhas credenciais git no github, gitlab e gitorious, para que, a cada vez, não seja necessário procurar as credenciais no navegador. Como isso pode ser feito para que seja automatizado?
A abordagem comum para lidar com a autenticação git é delegá-la ao SSH. Normalmente, você define sua chave pública SSH no repositório remoto ( por exemplo, no GitHub ) e usa-a sempre que precisar se autenticar. É claro que você pode usar um agente-chave, manipulado pelo ambiente da área de trabalho ou manualmente com ssh-agente ssh-add.
Para evitar a necessidade de especificar o nome de usuário, você também pode configurá-lo no SSH, no ~/.ssh/config; por exemplo eu tenho
Host git.opendaylight.org
User skitt
e então eu posso clonar usando
git clone ssh://git.opendaylight.org:29418/aaa
(observe a ausência de um nome de usuário).
Usando gitcredentials
Se a abordagem SSH não se aplicar ( por exemplo, você está usando um repositório acessado por HTTPS), o git tem sua própria maneira de lidar com credenciais, usando gitcredentials(e normalmente git-credential-store). Você especifica seu nome de usuário usando
(especifique --globalse você deseja usar esta configuração em qualquer lugar).
Então, na primeira vez que você acessar um repositório, o git solicitará sua senha e ela será armazenada (por padrão, em ~/.git-credentials). Acessos subseqüentes ao repositório usarão a senha armazenada em vez de perguntar a você.
você pode elaborar um pouco sobre credential.${remote} e credential.helper. Existe alguma documentação que você possa apontar, pois é a primeira vez que estou lendo sobre isso.
shirish
Vinculei às páginas de manual na minha resposta, essa é a documentação. ${remote}é a parte do protocolo e nome do host do URI que você deseja clonar, helperaponta para um programa auxiliar.
parece ser semelhante ao que Stephen Kitt compartilhou acima.
Shirish
2
@ shirish não, na verdade, o terceiro ponto era o que eu precisava - opção para especificar onde os arquivos estão localizados.
Mārtiņš Briedis
@shirish; Além disso, as instruções de Kitts não especificam a definição das credenciais, que foi um componente crucial para mim, pois eu já as havia definido globalmente.
SteveJ
Eu também tive dificuldade com isso, pois não é como se todo o git fosse repos. você receberá seria da mesma fonte / loja. O segundo é melhor, mas muito mais frustrante para trabalhar na realidade. Ainda obrigado por compartilhar. @SteveJ
credential.${remote}
ecredential.helper
. Existe alguma documentação que você possa apontar, pois é a primeira vez que estou lendo sobre isso.${remote}
é a parte do protocolo e nome do host do URI que você deseja clonar,helper
aponta para um programa auxiliar.Para aqueles que descobriram isso mais tarde - tive dificuldades com isso e finalmente o fiz funcionar
https / credentials.helper / Ubuntu
git config --global --unset credentials.helper
git config --unset credential.helper
Crie um arquivo de credencial para cada repo: (dentro de cada repo)
Não estou dizendo que é o melhor ou o único, mas funcionou para mim depois de várias horas frustrantes.
fonte