git 自动转换行符的坑爹案例
本人写的脚本都是在unix上运行的,但是编写有时候喜欢使用Git拉去到windows的ide进行编写,毕竟我的unix只有命令行的没有ide,
殊不知有一天我的sh执行时出现错误
-bash: ./dailytask.sh: /bin/sh^M: bad interpreter: 没有那个文件或目录
使用vim的命令:set ff?来查看文件格式发现已经是dos,修改格式为unix,命令如下:set ff=unix
接着再运行就好了
如果文件很多都修改成dos格式了,请示用dos2unix来进行批处理操作
具体原因是git开启了自动转换行符的操作
目前最稳妥的做法是关闭自动换行的设置
对于git bash用户使用命令:
git config --global core.autocrlf false
为了保证文件的换行符是以安全的方法,避免windows与unix的换行符混用的情况,最好也加上这么一句
git config --global core.safecrlf true
对于使用TortoiseGit的同学来说可以“快捷菜单”->“Git",将autocrlf去掉勾选