¿Cómo configurar el nombre de usuario y las contraseñas para diferentes repositorios 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
Ahora quiero poner mis credenciales de git para github, gitlab y gitorious para que cada vez no tenga que buscar las credenciales en el navegador. ¿Cómo se puede hacer esto para que sea automatizado?
El enfoque común para manejar la autenticación git es delegarlo a SSH. Por lo general, configura su clave pública SSH en el repositorio remoto ( por ejemplo, en GitHub ), y luego la usa siempre que necesita autenticarse. Por supuesto, puede utilizar un agente clave, ya sea manejado por su entorno de escritorio o manualmente con ssh-agenty ssh-add.
Para evitar tener que especificar el nombre de usuario, también puede configurarlo en SSH, en ~/.ssh/config; por ejemplo tengo
Host git.opendaylight.org
User skitt
y luego puedo clonar usando
git clone ssh://git.opendaylight.org:29418/aaa
(tenga en cuenta la ausencia de un nombre de usuario allí).
Utilizando gitcredentials
Si el enfoque SSH no se aplica ( por ejemplo , está utilizando un repositorio al que se accede a través de HTTPS), git tiene su propia forma de manejar las credenciales, utilizando gitcredentials(y típicamente git-credential-store). Usted especifica su nombre de usuario usando
(especifique --globalsi desea utilizar esta configuración en todas partes).
Luego, la primera vez que accede a un repositorio, git le pedirá su contraseña y se almacenará (de forma predeterminada ~/.git-credentials). Los accesos posteriores al repositorio utilizarán la contraseña almacenada en lugar de preguntarle.
¿Puedes elaborar un poco sobre credential.${remote} y credential.helper. ¿Hay alguna documentación que pueda señalar ya que esta es la primera vez que estoy leyendo al respecto?
Shirish
Me vinculé a las páginas de manual en mi respuesta, esa es la documentación. ${remote}es la parte de protocolo y nombre de host del URI que desea clonar, helperapunta a un programa auxiliar.
parece ser similar a lo que Stephen Kitt compartió anteriormente.
Shirish
2
@shirish no realmente, el tercer punto era el que necesitaba: opción para especificar dónde se encuentran los archivos.
Mārtiņš Briedis
@shirish; Además, las instrucciones de Kitts no especifican que no se establezcan las credenciales, lo cual fue un componente crucial para mí ya que ya las había configurado globalmente.
SteveJ
También tuve dificultades con esto, ya que no es como si todos los repositorios de git. Obtendrá sería de la misma fuente / tienda. El segundo es mejor pero mucho más frustrante para trabajar en la realidad. Aún así, gracias por compartir. @SteveJ
credential.${remote}
ycredential.helper
. ¿Hay alguna documentación que pueda señalar ya que esta es la primera vez que estoy leyendo al respecto?${remote}
es la parte de protocolo y nombre de host del URI que desea clonar,helper
apunta a un programa auxiliar.Para aquellos que encuentren esto más tarde, tuve dificultades con esto y finalmente lo hice funcionar
https / credentials.helper / Ubuntu
git config --global --unset credentials.helper
git config --unset credential.helper
Cree un archivo de credenciales para cada repositorio: (dentro de cada repositorio)
No digo que sea la mejor o la única forma, pero funcionó para mí después de varias horas frustrantes.
fuente