¿Cómo puedo versionar mi file .git / config?

Tengo un file .gitignore como el siguiente:

.* !.gitignore 

Y me gustaría versionar mi file .git/config manera que cuando hago un git pull mis actualizaciones de files .git / config automáticamente.

¿Cómo puedo hacer esto?

Intenté algo como:

 .* !.gitignore !.git/config 

Pero esto no funcionó. Sé que si creo un enlace ( ln -s .git/config configurations/git/config ) puedo versionarlo, pero me gustaría una mejor manera de actualizar el original automáticamente.

Estoy pensando en crear un enlace ln .git/config configurations/git/config configuration/git ( ln .git/config configurations/git/config configuration/git ), pero no parece ser la mejor manera. Hay alguna manera de evitar esto? ¿Funcionará correctamente Git al versionar enlaces duros?

Editar: explicando por qué hacer esto

La principal motivación para hacer esto es que quisiera versionar la carpeta de inicio de un usuario mío. Utilizaré este control de versiones para ayudarme en algún tipo de deployment. Me gustaría mantener todos los clones sincronizados. Conflits aparecerán solo si no manejo bien las cosas y me ocuparé de esto. Tal vez también versione otros files protegidos de git.

Es una mala idea versionar su file .git/config .

git no le permite versionar nada en el directory .git porque el contenido del .git es local para su repository, y 2 personas que clonan desde la misma URL remota, no necesitan tener el mismo set de files en el directory .git después de el clon

Por ejemplo, es posible que solo tenga un solo origin remoto con nombre origin mientras que el otro desarrollador podría haber nombrado el control remoto algo así como foo lugar. Otro desarrollador podría tener 2 controles remotos llamados bar y baz .

La información sobre los controles remotos (URL, refspec, etc.), las sucursales locales (como la twig de seguimiento ascendente, etc.) se almacenan en su file .git/config .

Si realmente necesita anular alguna configuration, puede editar el file .git/config localmente o si se trata de una opción que puede establecer globalmente, use su ~/.gitconfig o equivalente.

No puede 'versionar' su file .git / config. Lo que puedes hacer es crear un .gitconfig en tu directory de trabajo y confirmarlo. Luego, después de un clon que realizas.

  cat .gitconfig >> .git/config 

Por supuesto, esto está lleno de todo tipo de problemas potenciales . ¿Qué pasa si alguien edita .gitconfig ? Tendría que deshacer .git/config y luego volver a agregar después de git pull . ¿Qué .gitconfig si .gitconfig cambia en una twig diferente? Tendría que deshacer .git/config y volver a agregar en git checkout <branch>

Por lo tanto, no estoy recomendando cambiar .git/config ; pero si debes hacerlo, debes hacerlo.

Para agregar a las respuestas ya excelentes, y para responder realmente a la pregunta del OP:

Estoy pensando en crear un enlace ln .git/config configurations/git/config configuration/git ( ln .git/config configurations/git/config configuration/git ), pero no parece ser la mejor manera.
Hay alguna manera de evitar esto?
¿Funcionará correctamente Git al versionar enlaces duros?

No:

  • los enlaces duros no están representados en Git: ver " Git y enlaces duros "
  • Los enlaces simbólicos simplemente se almacenarían como files de text con la ruta del file vinculado.