¿Cómo evito que git en Cygwin establezca core.filemode = true

Estoy usando git desde una installation de Cygwin en mi PC con Windows. Aunque cygwin admite los bits de permiso de Unix en un sistema de files NTFS, los progtwigs nativos de Windows como mi Eclipse no los conocen, de modo que todos los files creados por los progtwigs de Windows tienen el bit ejecutable establecido ( 755 ).

Rara vez necesito registrar un file con un bit ejecutable en un repository de Git. Por lo tanto, me gustaría tener core.filemode=false de forma pnetworkingeterminada. Establecí este valor en mi configuration global, pero desafortunadamente esto normalmente no tiene efecto: como documentado , git clone testing el sistema de files para ver si admite permissions y establece el core.filemode consecuencia por repository , y por lo tanto tengo un core.filemode=true configuration en cada configuration de repository, anulando mi pnetworkingeterminado pnetworkingeterminado.

¿Hay alguna manera de evitar que git clone configure core.filemode automáticamente?

Puede configurar Bash de manera que cada vez que lo haga compruebe si ese directory es un repository y lo configura correctamente. En su ~/.bash_profile add

 PROMPT_COMMAND=pc pc () { [ -d .git -a ! -g .git/config ] || return git config core.filemode 0 chmod +s .git/config } 

La forma habitual sería iniciar o clonar su repository utilizando un directory de plantilla de git.

  git clone --template=<template directory> 

En ese directory, puede especificar un file de configuration, que se utilizará como una configuration de repository git local para el repository recién iniciado o clonado.

Sin embargo, el OP cumple con los informes de que no funcionará para core.filemode y core.ignorecase , para la página man de git config :

git-clone o git-init core.fileMode y establecerán core.fileMode falso cuando sea apropiado cuando se cree el repository.