Configurar git condicionalmente en base al directorio

28-03-2022

Por Ulises Santana Suárez

Más de una vez he hecho un commit para un proyecto de colaborador y me he dado cuenta que el commit está con mi email personal en vez de con mi email de Lean Mind. Esto es porque por lo general configuro el .git/config una vez me descargo el proyecto.

Sin embargo, como soy humano puedo olvidarme o puede darse el caso en el que después de un problema mergeando ramas el proyecto se quede en un estado inconsistente y prefiera borrarlo y clonarlo de nuevo. En este último caso la configuración se borra también y a menos que nos acordemos de volver a configurar, saldrá el email que tengamos asignado a nivel global.

Ojalá pudiera configurar git para que me ponga por defecto en los proyectos de los colaboradores el email de Lean Mind. ¡Pues se puede! Lo único que tenemos que hacer es ir a la configuración de git global que está en tu home (~/.gitconfig) y añadir esto:

[includeIf "gitdir:~/projects/leanmind/"] path = .gitconfig-leanmind

Donde pone ~/projects/leanmind pon la ruta a la carpeta donde tengas tus proyectos de colaborador. Ahora sólo queda crear el segundo archivo de configuración para Lean Mind:

[user] name = Ulises Santana email = ulises.santana@leanmind.es

¡Y ya está! A partir de ahora todo proyecto de git dentro del directorio ~/projects/leanmind usará mi email de Lean Mind, sin necesidad de estar configurándolo localmente. Es importante que la configuación que añadimos en ~/.gitconfig sea al final del fichero para que sobrescriba nuestro user e email. Debería quedar así:

[user] email = ulisesantana@gmail.com name = Ulises Santana [includeIf "gitdir:~/projects/leanmind/"] path = .gitconfig-leanmind