1.3 KiB
1.3 KiB
#杂七杂八常识
这个问题是关于Git中如何处理CRLF(回车换行)差异问题。在不同操作系统中,文本文件的行结束符是不同的:
Windows使用CRLF(\r\n)
Linux/Unix使用LF(\n)
旧版Mac使用CR(\r)
这种差异会导致在跨平台协作时,即使文件内容没有实质性变化,Git也会报告有差异,因为行结束符发生了变化。
使用.gitattributes文件
使用说明,参考gitattributes作用
在项目根目录创建.gitattributes
文件,内容如下:
# 设置默认行为,所有文件都使用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混乱问题,需要输入两行指令,进行修正即可
# 重新检出所有文件,应用行尾设置
git rm --cached -r .
git reset --hard
以上设置可以有效避免Git因行尾符差异而产生不必要的变更记录。