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
ogit-init
core.fileMode
y estableceráncore.fileMode
falso cuando sea apropiado cuando se cree el repository.