git自动转换换行符问题

在git上传、更新或者新增文件时会处理文本文件的换行符号。换行符在windows中默认为CRLF即"\r\n",在linux中为LF即"\n"。如果不特殊配置如果仓库的文件换行符为LF,下载到windows会变成CRLF,下载到linux上还是LF。上传时windows环境的CRLF会转换成LF后上传。一般使用也没什么问题。在使用maven的openapi-generator-maven-plugin插件生成openAPI定义文件的代码的时候,生成的文件换行符为LF。有时定义文件只改了一个接口,在重新生成接口代码时,虽然文本内容只改动了一个文件,但是在提交时会显示所有文件都修改了,而其他文件只是换行符号不一致。这里本来就只需要对比确认一个文件的差异,但现在显示有差异的文件有几十个。这在代码提交时就大大的增加了比对的工作量。

有两种解决方案,一个时让maven插件生成的代码使用CRLF换行,一个是使git将文本换行符设置为LF。

前一种没有找到maven插件有这种设置的参数。git有设置换行符的参数,设置方式有多种。这里只需要设置特定目录下的文本换行符,在这个目录下增加.gitattributes文件。

复制代码
*.java text eol=lf
复制代码
上述参数设置意思是java类型文件按文本文件处理,文本换行符为lf。设置之后重新启动idea,文件的换行符号变成了lf,然后插件重新生成代码,此时git对比就只显示有内容产生变动的文件。
相关推荐
leoZ2315 小时前
Git 集成实战完全指南(三):自动化 Commit 与 PR
大数据·git·elasticsearch
天空'之城8 小时前
VS Code Git 工作树:告别频繁切分支,实现多分支并行开发实战方案
git·vscode·版本控制·嵌入式开发·开发效率·worktree·多分支管理
程序员爱德华10 小时前
VSCode git/gerrit解冲突
git·vscode·gerrit
leoZ23119 小时前
Git 集成实战完全指南(二):智能分支管理
大数据·git·elasticsearch
qq_452396231 天前
第六篇:《GitLab CI 进阶:多环境部署与环境变量管理》
git·ci/cd·gitlab
有想法的py工程师1 天前
GPG 密钥迁移指南:多私钥备份、批量导入与自动信任
git·github
浮江雾1 天前
Flutter第五节------Flutter开发环境配置与项目创建指南
开发语言·前端·git·学习·flutter·入门·函数
aramae1 天前
C++11:现代C++的里程碑
c语言·开发语言·c++·windows·git·后端
BerryS3N1 天前
VS Code Git 工作树:解锁多分支并行开发新体验
大数据·git·elasticsearch
工具派1 天前
从 git commit 到交付 PDF:我的一条在线工具流实录
git·elasticsearch·pdf