usuario tipos tag etiquetas crear cambiar git github gitolite git-config

tipos - git config--global



¿Cómo decirle a git que use la identidad correcta(nombre y correo electrónico) para un proyecto determinado? (6)

Uso mi laptop personal para proyectos personales y de trabajo y me gustaría usar la dirección de correo electrónico de trabajo para mis commits en el trabajo (gitolite) y mi dirección de correo electrónico personal para el resto (github).

Leí acerca de las siguientes soluciones que son globales o temporales:

Una solución es ejecutar manualmente una función de shell que configure mi entorno para el trabajo o personal , pero estoy bastante seguro de que a menudo me olvidaré de cambiar a la identidad correcta, lo que resulta en el compromiso con una identidad incorrecta.

¿Hay alguna forma de vincular un determinado repositorio, nombre de proyecto, etc. a una identidad (nombre, correo electrónico)? ¿Que hace la gente?


A partir de Git 2.13 puede usar un includeIf en su gitconfig para incluir un archivo con una configuración diferente basada en la ruta del repositorio donde está ejecutando sus comandos git.

Una vez que lo haga funcionar, lo actualizaré con un mejor ejemplo.

https://motowilliams.com/conditional-includes-for-git-config#disqus_thread

Para usar Git 2.13, deberá agregar un PPA (Ubuntu / Debian) o descargar los binarios e instalar (Windows / otro Linux).


Edite el archivo de configuración en la carpeta ".git" para mantener el nombre de usuario y el correo electrónico diferentes según el repositorio

  • Ve a tu repositorio
  • Muestre los archivos ocultos y vaya a la carpeta ".git"
  • Encuentra el archivo "config"
  • Agregue las siguientes líneas en EOF

[usuario]

nombre = Bob

email = [email protected]

Este comando a continuación le muestra qué nombre de usuario y correo electrónico estableció para este repositorio.

git config --get user.name

git config --get user.email

Ejemplo: para el mío ese archivo de configuración en D: / workspace / eclipse / ipchat / .git / config

Aquí ipchat es mi nombre de repositorio


Necesita usar el comando de configuración local a continuación:

conjunto local

git config user.email [email protected] git config user.name ''Mahmoud Zalt''

obtener local

git config --get user.email git config --get user.name

El archivo de configuración local está en el directorio del proyecto: .git/config .

conjunto global

git config --global user.email [email protected] git config --global user.name ''Mahmoud Zalt''

global obtener

git config --global --get user.email git config --global --get user.name

El archivo de configuración global está en su directorio personal: ~/.gitconfig .

Recuerde citar espacios en blanco, etc., por ejemplo: ''FirstName LastName''


Si no usa el parámetro --global , configurará las variables solo para el proyecto actual.


Si usa git config user.email "[email protected]" estará vinculado al proyecto actual en el que se encuentre.

Eso es lo que hago para mis proyectos. Establecí la identidad apropiada cuando clono / inicio el repositorio. No es infalible (si olvida y empuja antes de darse cuenta de que está cubierto con una manguera), pero es lo mejor que puede obtener sin la capacidad de decir git config --global user.email ''ILLEGAL_VALUE''

En realidad, puedes hacer un valor ilegal. Establezca su git config --global user.name $(perl -e ''print "x"x968;'')

Entonces, si olvida establecer sus valores no globales, recibirá un mensaje de error.

[EDIT] En un sistema diferente, tuve que aumentar el número de x a 968 para que fallara con "fatal: identificador personal increíblemente largo". La misma versión de git. Extraño.


git config user.email "[email protected]"

Hacer eso dentro de un repositorio establecerá la configuración en ESE repositorio, y no globalmente.

Parece que eso es más o menos lo que buscas, a menos que te esté malinterpretando.