git 换行符

1. 通过 git 设置

解决不同操作系统下git换行符一致性问题

一、不同操系统下的换行符
CR回车 LF换行
Windows/Dos CRLF \r\n
Linux/Unix LF \n
MacOS CR \r
二、解决方法

打卡git bash,设置core.autocrlf和core.safecrlf(可不设置),建议设置autocrlf为input,safecrlf为true,同时设置你的Eclipse、IDEA等IDE的换行符为LF\n。
下面为参数说明,--global表示全局设置

2.1、autocrlf

#提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true

#提交时转换为LF,检出时不转换
git config --global core.autocrlf input

#提交检出均不转换
git config --global core.autocrlf false

2.2、safecrlf

#拒绝提交包含混合换行符的文件
git config --global core.safecrlf true

#允许提交包含混合换行符的文件
git config --global core.safecrlf false

#提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn



特别注意!!!!

只需要设置 

git config --global core.autocrlf true     即可,之前我是全部命令执行了,导致还是有问题!!!

!!!!  特别注意啊,用idea 工具也会有这个提示,可能是我的git忽略了这些

 

git 查看默认值

https://www.cnblogs.com/merray/p/6006411.html

git config --global  --list

2. 通过 idea 配置修改

由于Windows默认是用的是CRLF做换行符,Linux/mac 使用LF.在协作开发时候会经常因为回车符而造成冲突,其实这种冲突是可以避免的.有多种解决办法.

第一种解决办法: git工具上对换行符的检测进行忽略,具体执行命令另行搜索.

第二种解决:IDE工具中设置文本的换行符

IDEA中设置换行符方法:
打开setting,
找到Editor下的code style
修改line separator(for new files)选项,改成当前团队统一使用的换行符,例如我们团队统一使用的WIn(\r\n). 

applay…收工

 

参考连接

 

https://www.cnblogs.com/warking/p/5718648.html

https://blog.youkuaiyun.com/quuqu/article/details/52474512

### 原理 不同操作系统使用不同的换行符,Windows 使用 CRLF(回车符 + 换行符),而 Unix 和 Linux 使用 LF(换行符)。Git 为了处理不同系统间的换行符差异,提供了自动转换功能。当开启自动转换时,在提交文件到仓库时,Git 会将文件中的换行符转换为 LF;而在检出文件到工作目录时,会根据操作系统的不同,将 LF 转换为相应的换行符(如在 Windows 上转换为 CRLF)。若关闭自动转换,工作目录中的文件会保留原有换行符,但提交到仓库时会按 Git 规则处理,需手动确保换行符一致性 [^2]。 ### 设置方法 #### 全局设置 可以使用以下命令进行全局设置: ```bash # 开启自动转换(Windows 推荐) git config --global core.autocrlf true # 关闭自动转换(Unix/Linux 推荐) git config --global core.autocrlf input ``` #### 项目设置 在项目根目录下创建或编辑 `.gitattributes` 文件,添加以下内容: ```plaintext # 对所有文本文件使用 LF 换行符 * text eol=lf # 对特定文件类型使用特定换行符 *.bat text eol=crlf ``` 然后将 `.gitattributes` 文件提交到仓库: ```bash git add .gitattributes git commit -m "Add .gitattributes to enforce LF line endings" ``` ### 注意事项 - 团队协作时,团队需要确定一个统一的换行符标准(推荐使用 UNIX 风格),成员需配置好自己的代码编辑器和 IDE,在新建文件时默认使用团队统一的换行符标准,在打开文件时保持现有换行符格式不变(不要做自动转换) [^1]。 - 若关闭自动转换,需手动确保换行符一致性。 - 对于已存在的文件,若要清理其换行符,可以使用批量转码与换行符转换工具,该工具能够将文本文件从一种字符集转换为另一种字符集,并且支持批量转换 CRLF、LF、CR 等换行符格式,项目地址为:https://gitcode.com/open-source-toolkit/bdd67 [^4]。 - 在 Windows 上,若要将文件的 CRLF 换行符转换为 LF 换行符,可以打开 PowerShell(管理员权限非必须),使用以下命令: ```powershell $content = Get-Content -Path "C:\your\file.txt" -Raw $content = $content -replace "`r`n", "`n" $content | Out-File -FilePath "C:\your\file_linux.txt" -Encoding utf8 -NoNewline ``` 其中 `-NoNewline` 参数确保不会自动添加额外换行符 [^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值