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对比就只显示有内容产生变动的文件。
相关推荐
艺杯羹12 小时前
Git版本控制深度复盘:从入门到精通的完整指南
git·wpf·版本控制·git学习·git复盘
菩提小狗13 小时前
第7天:信息打点-资产泄漏&CMS识别&Git监控&SVN&DS_Store&备份|【小迪安全】web安全|渗透测试|网络安全-2021
git·安全·svn
Ghost Face...15 小时前
嵌入式Linux开发Git实战:从认证到Gerrit推送
linux·git·elasticsearch
LeoZY_21 小时前
开源项目精选: lazygit —— 告别繁琐命令,终端里玩转可视化Git
git·stm32·单片机·mcu·开源·远程工作·gitcode
黎潇lulu1 天前
IDEA的Git使用方法(中文IDEA版)
java·git·intellij-idea
风行無痕1 天前
Git使用 通过Commit号拉取指定版本代码并另存新分支
git
番茄去哪了2 天前
苍穹外卖day03-----菜品管理
java·开发语言·数据库·ide·git·学习·maven
人间打气筒(Ada)2 天前
代码版本控制系统变更
git·svn·云计算·gitlab·ci·cd·代码变更
扶苏10022 天前
推送代码到gitee,弹出身份验证窗口,但是输入gitee账号密码,提示认证失败
git·gitee
画扇落汗2 天前
OpenClaw安装之(一)公司电脑下的企业防火墙的安装避坑指南:彻底解决 `libsignal-node` GitHub 下载失败问题 git 源码安装指南
git·ai·node.js·github·openclaw