【git】windows下git换行符自动转换导致centos下shell脚本无法正常运行

1.问题描述

  1. 项目中我为springboot项目部署准备了启动脚本start.sh,有时候启动正常,有时候启动报错,报错如下图:【git】windows下git换行符自动转换导致centos下shell脚本无法正常运行_第1张图片
  2. 从gitlab上检查start.sh脚本源码,并没有发现有\r字符

2.原因排查

  1. 从打好的zip里解压出start.sh,然后在git bash中通过od -c start.sh查看文件内容,发现文件内容确实有\r字符:【git】windows下git换行符自动转换导致centos下shell脚本无法正常运行_第2张图片
  2. gitlab源码上没有\r,而打好的包里有\r,从gitlab到打包步骤仅仅是通过windows git bash把代码clone下来然后mvn打包,所有怀疑是不是windows clone时被git转换了换行符\n->\r\n?
  3. 进过一番搜索,确实是git有一个配置参数来控制是否进行换行符转换:
    git config --global core.autocrlf false 禁用自动转换
    git config --global core.autocrlf true 开启自动转换
    git config --list 可查看当前git的配置项

3.解决方法

  1. git config --global core.autocrlf false 禁用自动转换
  2. 删除本地项目,重新clone然后mvn打包,问题解决~~~

看似小问题排查了好久,汗-_-!

你可能感兴趣的:(git)