git LF CRLF

2021-10-13
7603 分钟
...

前言

CRLF、LF 是用来表示文本换行的方式。CR (Car­riage Re­turn) 代表回车,对应字符 \r,LF (Line Feed) 代表换行,对应字符 \n。由于历史原因,不同的操作系统文本使用的换行符各不相同。主流的操作系统一般使用 CRLF 或者 LF 作为其文本的换行符。其中,Win­dows 系统使用的是 CRLF, Unix 系统 (包括 Linux、Ma­cOS 近些年的版本) 使用的是 LF。

修改 Git 配置

core.autocrlf

Git 提供了一个名为 core.autocrlf 的配置,可以自动完成标准化与转换。它的设置方式如下:

git config --global core.autocrlf  [true | input | false]  # 全局设置
git config --local core.autocrlf  [true | input | false] # 针对本项目设置
  • true 提交时转换为LF,检出时转换为CRLF
  • input 提交时转换为LF,检出时不转换
  • false 提交与检出的代码都保持文件原有的换行符不变(不转换)

CRLF 与 LF 混合的文本文件不受此配置控制。 Git 安装后默认为 false

在文本编辑器可选换行符,且知道如何正确选择的情况下,其实无需进行任何设置。但为了防止在开发非 Win­dows 项目时不小心使用了 CRLF ,可以进行如下设置,这样在提交 (com­mit) 时换行符会转换为 LF。

git config --global core.autocrlf input

对于偶尔会开发 Win­dows 项目的开发者,可以单独对 Win­dows 项目进行设置,来保留 CRLF 。

git config --local core.autocrlf false

core.safecrlf

由于没有一个绝对有效的算法来判断一个文件是否为文本,所以 Git 提供了一项禁止 / 警告不可逆转换的配置来防止错误的标准化与转换。它主要是影响到多种换行符混合的文件,我们可以手动将其转换为同一种换行符:

git config --global core.safecrlf [true | false | warn]
  • true 禁止提交混合换行符的文本文件(git add 的时候会被拦截,提示异常)
  • warn 提交混合换行符的文本文件的时候发出警告,但是不会阻止 git add 操作
  • false 不禁止提交混合换行符的文本文件(默认配置)

如果您觉得这篇文章有帮助,请点个赞吧~

分享文章

相关文章

更多文章 →
git2025-07-21
git之代码提交错误解决
我 add 错误文件了,怎么办? 这个就比较简单了,执行 该命令的作用是: 撤销暂存 :所有已经 的文件会变成未暂存状态。 保留工作区的修改 :文件内容保持不变,仍然在工作区。你可以继续提交文件或者做一些修改之后再提交文件。 我不但 add 了还 commit 了,怎么办? 只能说你还没推送,还行!!! 其实也不难,执行一下 其中的HEAD 1是将 (当前分支的最新提交)回退到 前一个提交 ( 表示“当前提交的前一个”)。 如果你做了两...
学习
git2025-07-04
Git 移除已追踪文件/文件夹
<span style="color: var( g textcolor);" 详解如何优雅地从 Git 仓库中移除已被追踪的文件,并介绍相关的最佳实践和注意事项。</span 问题背景 在项目开发中,经常会遇到一些不应该被 Git 追踪的文件被意外提交的情况,比如: IDE 配置文件(.vscode、.idea 等) 编译生成的文件夹(node modules、dist 等) 本地配置文件 日志文件 解决步骤 1\. 创建或更新 .g...
学习
git2024-09-23
Git stash命令详解和使用
&nbsp; stash 命令使用非常简单,是经常使用的命令 应用场景: 1 、临时存储已修改的代码:比如正在分支A上开发某个功能,还未完成,突然要切换到B分支上去修复一个bug。这时就可以用git sta 将本地修改的内容保存至堆栈区,再切换到B分支修改bug,修复完成后,再切回到A分支,从堆栈中恢复刚刚保存的内容。 2 、同步代码:由于不小心,本来要在A分支上开发的功能代码,却写在了B分支上,这时就可以用git stash将本地代码...
学习
git2024-09-19
Git 代码提交规范,feat、fix、chore 都是什么意思
Git 代码提交规范,feat、fix、chore 都是什么意思? 经常看到别人提交的代码记录里面包含一些feat、fix、chore等等,而我在提交时也不会区分什么,直接写下提交信息,今天就来看一下怎么个事,就拿 element plus/ant design 来看一下。 其实这么写是一种代码提交规范,当然不是为了炫技,主要目的是为了提高提交记录的可读性和自动化处理能力。 当然如果团队没有要求,不这么写也可以。 commit mess...
学习
git2024-02-23
Git Worktree 的使用
官方介绍地址: 对于 git worktree 的使用场景,我们举个例子说明。 如果我们正在进行重构代码,老板突然要求我们立即修复某些问题。通常我们可能会使用 git stash 来临时存储相关更改,但是此时工作树会处于这样一种混乱状态(有新增的、被移动的、被删除的文件,以及其他的修改)。一个不注意,我们就会打乱 git stash 中的文件,此时我们原本的修改或者 Git 管理有可能就会出现问题。 如果我们希望在不影响现有更改的前提下...
学习
git2023-02-13
gitlab仓库使用fork模式下的同步
首先介绍下什么是fork模式,fork模式就是复制一份源仓库,然后我再clone自己的仓库,在自己的仓库上开发,开发完成后再合并到源仓库。 fork仓库的地址和源仓库地址是独立的,我们clone的时候拉取自己仓库的地址(源仓库: fork仓库: 但是这样就会出现两个问题: 一、源仓库新增加了分支,如何同步到自己的仓库, 二、源仓库某个分支代码更新了,如何同步到本地仓库相应的分支 问题一:同步新分支到fork仓库 1、首先我们先克隆for...

评论

请登录后发表评论

去登录
加载评论中...

目录