Repositorio de Git con files CRLF y LF?

Tengo un repository git cuyas terminaciones de línea de files deben ser CRLF o LR en el checkout dependiendo del file específico. Por ejemplo, quiero que todos los files * .sh se revisen con terminaciones de líneas LR mientras que todos los files * .bat con CRLF.

He estado intentando sacar esto adelante sin resultados, el próximo es mi file .gitattributes :

 * text=auto # # Declare files that will always have CRLF line endings on checkout. # *.sh text eol=LF # # Declare files that will always have LF line endings on checkout. # *.bat text eol=CRLF # # Denote all files that are truly binary and should not be modified. # *.zip binary *.tar binary *.exe binary *.dll binary */dropbear binary *update-binary binary 

Cuando abro un file .sh o un file .bat , ambas terminaciones de línea son CRLF. ¿Qué estoy haciendo mal?

Nota: desarrollo en una computadora con Windows.

EDITAR: configuration del sistema, global y local

Sistema:

 core.symlinks=false core.autocrlf=true color.diff=auto color.status=auto color.branch=auto color.interactive=true pack.packsizelimit=2g help.format=html http.sslcainfo=/bin/curl-ca-bundle.crt sendemail.smtpserver=/bin/msmtp.exe diff.astextplain.textconv=astextplain rebase.autosquash=true 

Global:

 merge.tool=kdiff3 diff.guitool=kdiff3 core.editor="C:/Program Files (x86)/GitExtensions/GitExtensions.exe" fileeditor core.autocrlf=true cnetworkingential.helper=!'C:\Users\XXXX\AppData\Roaming\GitCnetworkingStore\git-cnetworkingential-winstore.exe' user.name=xxxxx.xxxx user.email=xxxx.xxxx@xxxxx.com filter.lfs.clean=git-lfs clean %f filter.lfs.smudge=git-lfs smudge %f filter.lfs.requinetworking=true push.default=matching 

Local:

 core.repositoryformatversion=0 core.filemode=false core.bare=false core.logallrefupdates=true core.symlinks=false core.ignorecase=true core.hidedotfiles=dotGitOnly remote.origin.url=https://github.com/XXXXXX/xxxxxx.git remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* branch.master.remote=origin branch.master.merge=refs/heads/master branch.v2.10.0.remote=origin branch.v2.10.0.merge=refs/heads/v2.10.0 branch.v2.10.1.remote=origin branch.v2.10.1.merge=refs/heads/v2.10.1 

Además, la documentation de GitHub establece lo siguiente:

Opcionalmente, puede configurar la forma en que Git administra las terminaciones de línea por repository configurando un file especial de .gitattributes. Este file está comprometido en el repository y anula la configuration core.autocrlf de un individuo, asegurando un comportamiento consistente para todos los usuarios, independientemente de su configuration de Git.

EDICION 2:

Si configuro core.autocrlf en false y comente todas las líneas de .gitattributes se .gitattributes ambos files .sh y .bat con terminaciones de línea LF.

El valor del atributo eol , como la mayoría de Git, distingue entre mayúsculas y minúsculas. Usted quiere:

 *.sh eol=lf *.bat eol=crlf