git换行符自动转换导致整个文件被修改的解决方案

问题:git提交代码时显示修改了整个文件但实际只是修改了部分
原因:是因为git换行符的导致
Unix/Linux使用的是LF,Mac后期也采用了LF,但Windows一直使用CRLF
需要在配置文件中加入配置
[core]
autocrlf = false
filemode = false
safecrlf = true
【1】
autocrlf =true 表示要求git在提交时将crlf转换为lf,而在检出时将crlf转换为lf。
autocrlf = false表示提交和检出代码时均不进行转换
autocrlf = input 表示在提交时将crlf转换为lf,而检出时不转换
【2】
#拒绝提交包含混合换行符的文件
git config --global core.safecrlf true

#允许提交包含混合换行符的文件
git config --global core.safecrlf false

#提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn
【3】
filemode 文件权限
#diff时考虑文件权限为true,不考虑为false
core.filemode = true | false
我们通过这个参数来决定是否会diff文件的权限,如果是源代码,可以关闭这个选项,如果是脚本、二进制程序等需要权限认证之类的还是要开启该参数的:

git config core.filemode false
更改完成后再cat下.git/config就会发现该参数变了。

发布了4 篇原创文章 · 获赞 1 · 访问量 113

猜你喜欢

转载自blog.csdn.net/weixin_44383202/article/details/104050259