git 换行问题_解决 Git 换行符自动转换问题的方法
事情发生背景:
使用IDEA从gitlab上面下载项目,修改代码后打包部署,项目使用maven-assembly-plugin插件打包成多环境部署zip包。
结果:
其他同事均正常部署,而出自我本地打包的项目偏偏无法部署,
最后各种文件对比,发现项目中主要执行文件server.sh文件格式为doc,而linux中文件格式为unix。所以开始查看本地编码格式,git环境的编码格式,发现本地sh格式为doc,git上sh的格式为unix,那么是哪个步骤出现了问题呢。
最后在一篇文章中发现了结果,
Git 作为一个源码版本控制系统,提供了一个“换行符自动转换”功能。既:当你在签出文件时,它试图将 UNIX 换行符(LF)替换为 Windows 的换行符(CRLF);当你在提交文件时,它又试图将 CRLF 替换为 LF。同时GIT的这个功能默认处于“自动模式”。
因此本地打包sh的格式就会根据本地系统来确定。
那么要如何才能关闭git的这一功能呢?
方法
针对已经安装GIT环境来说,打开“Git Bash”,
然后输入:git config --global core.autocrlf false
之后删除项目,重新从GIT上下载项目,重新打包部署
问题解决。