Cómo configurar un entorno Netbeans / Git / Cygwin para que no se ahogue con las diferencias de CR y LF, por ejemplo: `\ r command not found`?

Utilizo Netbeans, Git y Cygwin en Windows 7 y estoy constantemente luchando contra las diferencias de CR y LF para los finales de línea.

2 problemas principales son:

  • Git da un estado 'modificado' cuando la única diferencia es que el repository usa LF y el file por etapas tiene un CRLF. errrrg.
  • Obtengo el \r command not found al intentar ejecutar un script dentro de Netbeans, que se ha configurado para usar mi cygwin bash. Esto se debe a que a Cygwin no le gusta CRLF.

Lo que quiero:

  • Terminaciones de línea LF en todos los files de text, tanto en el repository como en el directory de trabajo
  • Evite que Netbeans cambie las terminaciones de línea a CRLF
  • Evite que cygwin se asfixie con CRLF

Lo que he intentado:

  • agregué SHELLOPTS = igncr en mi variable de entorno de Windows. Esto funciona para mantener a Cygwin contento, por lo que digiere mis scripts bash sin ahogarse, pero quiero una solución que no dependa de esta solución. Parece torpe y en realidad solo está ocultando el problema.
  • intenté con la solución de final de línea de GitHub, incluida la configuration de autorclf = false, text = auto en mi file gitattributes. Esto funciona, a less que intente ejecutar el file bash usando Cygwin después de que Netbeans lo haya editado. Entonces Netbeans se ahoga (a less que use la solución SHELLOPTS = igncr)

Hay preguntas similares pero ninguna que pueda encontrar que aborde este entorno específico (pero común), especialmente relacionado con el tema del script bash.