admin 管理员组

文章数量: 1184232

Windows系统使用的换行符是CRLF ,UNIX/LINUX系统使用的换行符是LF
本机(windows系统),编写的文件换行符为CRLF
GIT是由Linux开发人员开发的,源码存储和UNIX/LINUX保持一致,换行符为LF
GitHub 的 Windows 客户端的换行符自动转换功能默认处于“自动模式”。
当你在签出文件时,Git 试图将 UNIX 换行符(LF)替换为 Windows 的换行符(CRLF);
当你在提交文件时,它又试图将 CRLF 替换为 LF。
如果提交的文件是一个 包含中文字符的UTF-8文件,那么这个“换行符自动转换”功能在提交时不是每次都生效
尤其是文件中出现中文字符后有换行符时

(但签出时的转换处理没有问题)
本机编写的文件中的CRLF换行符,在push的时候,没有正确地被替换为LF
而在PULL时,LF又被自动替换为CRLF,
使得原本的文件中的CRLF全部变为CRCRLF
因此git无法正确对比文件发生的变动

和换行符有关的命令设定如下:

    #提交时转换为LF,检出时转换为CRLF
    git config --global core.autocrlf true
    
    #提交时转换为LF,检出时不转换
    git config --global core.autocrlf input
    
    #提交检出均不转换

本文标签: 环境 换行符 Windows Git