¿Git usa sh? Si es así, ¿se puede cambiar para usar bash?

Cuando ejecuto un command git, a menudo obtengo

sh: line 0: igncr: invalid option name 

Como salida. Esto es causado por una configuration que tengo que hacer que Cygwin sea tolerable. Parece que git está generando un process sh para ejecutar. ¿Puedo configurar esto para que sea un shell bash?

No agrega mucho, pero como se solicita aquí está el command git

 gt ad -p A/B/C.csproj 

Los commands de shell que causan fallas son

 export SHELLOPTS set -o igncr 

Si se ejecuta con GIT_TRACE = 1

 trace: exec: 'git-ad' '-p' 'A/B/C.csproj' trace: run_command: 'git-ad' '-p' 'A/B/C.csproj' trace: alias expansion: ad => 'add' trace: built-in: git 'add' '-p' 'A/B/C.csproj' trace: run_command: 'add--interactive' '--patch' '--' 'A/B/C.csproj' trace: exec: 'git-add--interactive' '--patch' '--' 'A/B/C.csproj' trace: run_command: 'git-add--interactive' '--patch' '--' 'A/B/C.csproj' trace: built-in: git 'rev-parse' '--show-prefix' trace: built-in: git 'config' '--get-colorbool' 'color.interactive' 'false' trace: built-in: git 'config' '--get-color' 'color.interactive.prompt' 'bold blu e' trace: built-in: git 'config' '--get-color' 'color.interactive.header' 'bold' trace: built-in: git 'config' '--get-color' 'color.interactive.help' 'networking bold' trace: built-in: git 'config' '--get' 'color.interactive.help' trace: built-in: git 'config' '--get-color' 'color.interactive.error' 'networking bold' trace: built-in: git 'config' '--get-colorbool' 'color.diff' 'false' trace: built-in: git 'config' '--get-color' 'color.diff.frag' 'cyan' trace: built-in: git 'config' '--get-color' 'color.diff.plain' '' trace: built-in: git 'config' '--get-color' 'color.diff.old' 'networking' trace: built-in: git 'config' '--get-color' 'color.diff.new' 'green' trace: built-in: git 'config' '--get-color' '' 'reset' trace: built-in: git 'config' '--bool' '--get' 'interactive.singlekey' trace: built-in: git 'rev-parse' '--git-dir' trace: built-in: git 'update-index' '--refresh' trace: built-in: git 'ls-files' '--' 'A/B/C.csproj' sh: line 0: igncr: invalid option name trace: built-in: git 'diff-index' '--cached' '--numstat' '--summary' 'HEAD' '--' 'A/B/C.csproj' trace: built-in: git 'diff-files' '--numstat' '--summary' '--raw' '--' 'A/B/C.csproj' trace: built-in: git 'diff-files' '-p' '--' 'A/B/C.csproj' trace: built-in: git 'diff-files' '-p' '--color' '--' 'A/B/C.csproj' 

Ejecute el command git GIT_TRACE=1 con el prefijo GIT_TRACE=1 para ver los detalles del command del shell GIT_TRACE=1 generado, y tómelo desde allí …

EDITAR: después de ver la traza, dado el hecho de que igncr es una opción bash específica de cygwin, considere agregar una function bash para anular el command gt y desactivar esa opción de shell.

Por ejemplo,

 gt () { (set +o igncr; git "$@";) } gt ls-files 

por supuesto, debes mover la function gt a tu .bashrc o similar.