¿Cómo puedo forzar a git a que me solicite la dirección de correo electrónico que debo usar, si no está configurada en la configuración de repositorio?


1

Supongamos que soy un contratista que ocasionalmente trabaja en 2 proyectos simultáneamente (uno podría ser mantenimiento, uno podría estar en desarrollo)

De vez en cuando tengo que trabajar en un nuevo repositorio, y me olvido de configurar la dirección de correo electrónico para usar en git, por lo que el valor predeterminado es la dirección de correo electrónico establecida globalmente.

¿Cómo puedo manejar esto mejor?

¿Qué sucede si solo defino la dirección de correo electrónico en el nivel de repositorio? ¿Se quejará git o se comprometerá felizmente sin una dirección de correo electrónico definida?

¿Cómo puedo verificar un nuevo repositorio y pedirme una dirección de correo electrónico?

¿Es posible que solicite uno de los 2 archivos de configuración de 'perfiles' diferentes de la compañía?

Soy propenso a cometer este error una y otra vez, con meses de diferencia, por lo que generalmente olvido cosas que deben configurarse en máquinas nuevas o comandos que deben ejecutarse en lugar de los git predeterminados.

Esto también me afecta ocasionalmente cuando trabajo desde casa.

Respuestas:


2

Una forma de hacerlo es desactivar su usuario local de correo electrónico y habilitar la opción user.useConfigOnly. Esta opción está disponible desde git 2.8 en adelante .

git config --global --unset-all user.email
git config --global --add user.useConfigOnly true

Esta configuración es por computadora, por lo que deberá configurarla en cada computadora en la que esté clonando.

Con este conjunto, las confirmaciones fallarán porque su correo electrónico no está configurado y la detección automática está desactivada.

$ git commit -m "Test"
fatal: no email was given and auto-detection is disabled

Luego, para cada nuevo repositorio, configure su dirección de correo electrónico localmente:

git config --local --add user.email "bob@nosuchemail.net"

¡Gracias! su respuesta me ayudó a ir a collectiveidea.com/blog/archives/2016/04/04/… que también incluye varias configuraciones de git por proyecto / directorio.
Ryan The Leach

0

En combinación con la respuesta @NightSicarius, es posible usar "Incluye condicional" en una configuración de git.

De los comentarios en https://collectiveidea.com/blog/archives/2016/04/04/multiple-personalities-in-git

Esto es aún más fácil ahora con la adición de inclusiones condicionales en Git v2.13. Puede usar la misma estructura de carpetas / archivos .gitemail que menciona, pero haga referencia a ellos de arriba hacia abajo en lugar de relativamente.

Si la condición de inclusión termina en un "/" final, la ruta se hace coincidir recursivamente con todos los subdirectorios, haciendo que toda la estructura funcione.

[includeIf "gitdir: C: /Apache2.2/htdocs/jm/"] ruta = C: /Apache2.2/htdocs/jm/.gitconfig

Se puede encontrar más información en: https://git-scm.com/docs/git-config#_conditional_includes

Y un ejemplo en: https://stackoverflow.com/a/43884702/6798110

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.