Modificar el file de configuration de git globalmente

Nos gustaría cambiar el file de configuration de git de forma global, de modo que el nuevo file se descargue de git repo en cada clon de git. ¿Hay una manera de hacerlo? ¿Algún usuario que haga clon git del proyecto debería get este file personalizado de configuration de git en el file ./git/config en lugar del estándar?

No creo que sea una buena idea que git-clone haga este trabajo. Es inseguro e irrazonable modificar un file local existente o anular las configuraciones locales sin la conciencia o permiso del usuario.

No sé por qué te gustaría hacerlo, pero creo que puedes hacerlo por otros medios. Para los miembros de su equipo, podría decirles las reglas que deben obedecer durante el desarrollo. Para un usuario aleatorio que puede clonar su proyecto y contribuir, puede anotar las reglas en README o la presentación del proyecto. Los usuarios deben poder hacer lo que quieran en sus repositorys locales. Pero cuando sus compromisos se fusionen o se apliquen en el depósito bendecido, podría establecer barreras a esos compromisos insatisfactorios.

Por ejemplo, si no desea files que contengan terminaciones de línea estilo dos, puede detectarlos en un gancho de pre-receive , evitar la inserción y luego responder en el post de error para explicar por qué falló la inserción y sugerir qué hacer para arreglar el error. Hacer una configuration de git específica se puede include en la sugerencia.

Hasta donde yo sé, no es posible forzar la modificación en la configuration global de Git para los usuarios cuando clonan su repository. Causaría serios problemas de security.

¿Qué sucede si decides modificar la "key de firma" de los usuarios o modificar la ruta a un ejecutable (mergetool, difftool, etc.)?

En su lugar, podría escribir un script que modifique la configuration que desea actualizar y solicitar a los usuarios que ejecuten este script.

Puede usar los siguientes commands para actualizar las configuraciones de git:

 git config --global <key> <value> # modify global .gitconfig git config <key> <value> # modify current repository config 

Creo que puedes crear un file config_symlink.sh: creará un enlace simbólico desde tu file de configuration que ha sido push to git. Y enlace ese file a ./.git/config

 ln -s ./config ./.git/config 

Luego empuja dos files.

¡¡¡Buena suerte!!!