如何在 Windows/Linux/Mac 操作系统上的 Git 中处理行尾字符?

gitlinuxopen sourcesoftware & coding

这个问题也可以改写为 − 如何解决 Git 警告 − "LF 将被 CRLF 替换"?

在 Windows 操作系统中,行尾使用两个特殊字符"\r
"标记,而在 MacOS 和 Linux 系统中,“
” 字符用于标记行尾。

\r 和
分别称为回车符 (CR) 和 换行符 (LF)。为了在多个操作系统之间保持一致性,正确处理行尾字符非常重要。

行尾字符有两种配置方式 −

  • 安装时−

安装时,Git 允许我们从以下选项中进行选择,以配置行尾转换,如上所示 −

  • 检出 Windows 样式,提交 Unix 样式行尾 −在签出和提交操作时,CRLF 将被转换为 LF。当 Git 安装在 Windows 上且项目协作者使用非 Windows 计算机时,建议使用此设置。

  • 按原样签出,提交 Unix 样式的行尾 − 签出时不会执行任何转换。但是,Git 会在提交文件时将 CRLF 转换为 LF。当 Git 安装在 Unix 样式的计算机上且项目协作者使用 Windows 计算机时,建议使用此设置。

  • 按原样签出,按原样提交 − 签出或提交文件时不会执行任何转换。当安装 Git 的操作系统和协作者的操作系统相同时,建议使用此选项。机器相同。

  • 安装后 − 配置 autocrlf 属性

应配置 "core.autocrlf" 属性来管理行尾转换。请考虑以下场景

场景 1 − Git 安装在 Windows 机器上,协作者使用不同的平台

A 先生和 B 先生正在开发同一个项目。A 先生使用 Windows 机器,B 先生使用 Mac 机器。如前所述,Windows 和 Mac 操作系统使用不同的字符来标记行尾。这意味着,如果 A 先生将代码提交到存储库,Git 应该从行尾删除回车符 (\r)。同样,当他从存储库中检出代码时,Git 应该更新行尾并添加回车符。

在 Windows 操作系统上,可以通过使用以下命令将"core.autocrlf"设置为 true 来实现。 −

$ git config --global core.autocrlf true

现在让我们创建一个文件,将其添加到暂存区并观察输出。

$ echo hello >abc.txt
$ git add abc.txt

Git 将显示一条消息,指出文件 “abc.txt” 中的 LF 将被 CRLF 替换。如下所示 −

警告:abc.txt 中的 LF 将被 CRLF 替换。
该文件将保留其原始行尾。

场景 2 − Git 安装在 Unix 或 Mac 机器上,协作者在不同平台上工作

现在让我们考虑一个场景:B 先生使用 MacOS 机器并尝试签出代码。如果将代码签出到 Mac 或 Linux 机器,Git 不应修改行尾字符。但是,有时代码编辑器或 IDE 可能会意外添加回车符。在这种情况下,Git 应该足够智能,能够识别操作系统并在将代码添加到存储库之前删除回车符。在 Mac 或 Linux 系统上,可以通过在配置文件 − 中设置以下行来设置此行为。

$ git config --global core.autocrlf input

这意味着,Git 应该只在代码存储在仓库中时修改代码。

现在让我们创建一个文件,将其添加到暂存区并观察输出。

$ echo hello > abc.txt
$ git add abc.txt

输出将是 −

Warning − LF will be replaced by CRLF in abc.txt.
The file will have its original line endings in your working directory
>

现在,让我们尝试观察在禁用 core.autocrlf 设置后添加文件时 Git 的行为。以下命令可用于禁用此设置。

$ git config --global core.autocrlf false

现在,让我们创建一个文件,将其添加到暂存区并观察输出。

$ echo hello > abc.txt
$ git add abc.txt

由于 autocrlf 设置为 false,Git 现在不会显示任何警告消息。如果项目是由使用不同平台的合作者开发的,则不应使用此设置。

dell@DESKTOP−N961NRS VINGW64 /e/tut_repo (master)
$ echo hello > def. txt
dell@DESKTOP−N961NR5 MINGW64 /e/tut_repo (master)
$ git add def.txt

相关文章


有用资源