#杂七杂八常识 ``` 这个问题是关于Git中如何处理CRLF(回车换行)差异问题。在不同操作系统中,文本文件的行结束符是不同的: Windows使用CRLF(\r\n) Linux/Unix使用LF(\n) 旧版Mac使用CR(\r) 这种差异会导致在跨平台协作时,即使文件内容没有实质性变化,Git也会报告有差异,因为行结束符发生了变化。 ``` ### 使用.gitattributes文件 使用说明,参考[[gitattributes作用]] 在项目根目录创建`.gitattributes`文件,内容如下: ``` shell # 设置默认行为,所有文件都使用LF * text=auto eol=lf # 对特定类型的文件强制使用LF *.java text eol=lf *.xml text eol=lf *.txt text eol=lf *.md text eol=lf *.json text eol=lf # 二进制文件不应修改行尾 *.png binary *.jpg binary *.jar binary ``` 这种方法最为可靠,因为它是基于项目的,而不是个人Git配置,所有团队成员都会遵循相同的规则。 ### 对已有项目修复CRLF问题 如果项目已经存在CRLF混乱问题,需要输入两行指令,进行修正即可 ``` bash # 重新检出所有文件,应用行尾设置 git rm --cached -r . git reset --hard ``` 以上设置可以有效避免Git因行尾符差异而产生不必要的变更记录。