A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
CR (Carriage Return)
代表回车,对应字符 '\r';LF (Line Feed)
代表换行,对应字符 '\n'。由于历史原因,不同的操作系统文本使用的换行符各不相同。主流的操作系统一般使用 CRLF 或者 LF 作为其文本的换行符。其中,Windows 系统使用的是 CRLF, Unix 系统(包括 Linux, MacOS 近些年的版本) 使用的是 LF。
#Git 提供了一个名为 core.autocrlf 的配置,可以自动完成标准化与转换。它的设置方式如下: git config --global core.autocrlf [true | input | false] # 全局设置 git config --local core.autocrlf [true | input | false] # 针对本项目设置
CRLF 与 LF 混合的文本文件不受此配置控制。Git 安装后默认为 false
core.autocrlf
的配置依赖于每一位参与项目的开发机器上的配置,这很难确保每个人都能正确配置。于是在规范项目中的换行符方面,还有一套添加配置文件的方案。在项目的根目录下可以添加一个.gitattributes
文件。它的优先级高于 core.autocrlf
的设置,可以覆盖 core.autocrlf
的。它类似于 .gitignore
文件,随提交修改生效,一个项目中可以维持一份相同的配置。所以,它能够避免每个开发人员配置不同的问题。
.gitattributes
文件的功能不只有配置换行符。详细的说明文档可以参考猛戳这里 - gitattributes(5) Manual Page。这里只针对换行符的配置做一下简单的介绍:
#基本形式 filter attr1 attr2 .... #filter 代表匹配文件的通配符,在它后面跟着相应的属性,用空格间隔,如: * 匹配所有文件 *.txt 匹配文件名以txt结尾的文件
一个配置的例子,*.dat
其实是个纯文本的 IP 库文件,在这里配置以免 GIT 给做了 CRLF 转换:
# Set the default behavior, in case people don't have core.autocrlf set. *.dat text eol=crlf