¿Configurando el nombre de usuario y el correo electrónico de Git sin usar .gitconfig?

Tengo un repository dotfiles para macOS que contiene el file .gitconfig . Me gustaría mantener el username y el email separados de este file para que estas variables nunca se comprometan como parte de mi repository público de files.

Un enfoque que he visto es especificar un file llamado .extra , manteniéndolo en el directory ~/ (se hace reference en .bash_profile ) y establecer las variables de Git en ese file, para que sean externas a mi repository público, es decir, cualquier cambio público que realice en .gitconfig no includeá el username ni el email .

El problema es que ninguno de los enfoques para establecer estos valores me funciona. Después de cada bash, recibo el siguiente post:

Su nombre y dirección de correo electrónico se configuraron automáticamente en function de su nombre de usuario y nombre de host. Por favor verifique que sean precisos. Puede suprimir este post configurándolos explícitamente:

git config --global user.name "Your Name"

git config --global user.email you@example.com

Después de hacer esto, puede corregir la identidad utilizada para esta confirmación con:

git commit --amend --reset-author

Tengo lo siguiente en mi file .extra , y el suyo no funcionó:

GIT_AUTHOR_NAME="First Last"

GIT_COMMITTER_NAME="First Last"

EMAIL=email@example.com

He intentado varios enfoques utilizando estas variables y otras, así como include y excluir comillas, e incluso prefijar estas líneas con la export . ¡En un poco perdido!

Descubrí la solución:

Agregue lo siguiente al file .gitconfig files .gitconfig :

[user] # These values are set in ~/.gitconfig_local

[include] path = ~/.gitconfig_local

Cree un file en ~/ llamado .gitconfig_local y agregue los valores que no quiere que sean comprometidos o hechos públicos en su file .gitconfig . En este caso:

[user] name = First Last email = email@example.com

Como se puede adivinar, el command [include] "vincula" al file de configuration secundaria local que está fuera del repository y, por lo tanto, es privado. El rest de su configuration en .gitconfig , como los alias, el color y la configuration del editor, etc. seguirán siendo públicos.

Todos los ajustes se pueden establecer por repository: simplemente suelte el --global de sus commands de git config :

 # from inside your repo : git config user.name "Your Name" git config user.email you@example.com 

Esta configuration se almacenará en el file .git/config (en la carpeta repo) y tendrá prioridad sobre las opciones de configuration global.

Esto funciona para cualquier opción de configuration de git (alias, colors, …)

nota : tendrá que repetir la configuration para cualquier clon nuevo que haga, o para cualquier otro repository donde quiera usar esta identidad