git - 如何删除 git 文件中显示的 ^M 字符
问题描述
在我的 git 存储库上推送代码后,文件中每一行的末尾都会显示 ^M 字符。如何从那里删除这些字符。
这是 git [1] 上的代码截图:https ://i.stack.imgur.com/7T3A5.png
我使用了其他人建议的一些解决方案,例如-
git config --global core.autocrlf true
git config --global core.whitespace cr-at-eol
这些解决方案对我没有帮助。如果您有其他解决方法,请为此建议我。
解决方案
Git 具有为您的本地平台自动转换行尾的“功能”。我的一些项目为 Windows 和 Unix 平台构建文件 - 这些输出需要针对它们的目标是正确的,无论什么平台正在构建。因此,我更喜欢阻止它进行任何转换并始终保持文件不变。现代文本编辑器可以毫无问题地呈现不同的行尾,我不希望我的版本控制弄乱我的文件。
您需要执行以下所有步骤:
首先,必须通过以下方式禁用行尾更改行为:
git config --global core.autocrlf=false
其次,为了将来保持文件正确(以及在签入“固定”文件之前),签入.gitattributes
项目根目录中的文件,如下所示:
*.bat text eol=crlf
*.cmd text eol=crlf
*.properties text eol=lf
*.pl text eol=lf
*.py text eol=lf
最后,您需要修复不正确的本地文件。使用以下命令将行尾转换为 LF:
dos2unix filename
或与 CRLF
unix2dos filename
(如果在 Windows 上使用 git-bash shell)。然后检查他们。
推荐阅读
- php - PHP,数据表:如何将 Oracle 表中的数据回显到我的数据表中,而不会收到来自 JSON 的错误?
- elasticsearch - elasticsearch 2.1中的聚合分页
- pa11y - 无论如何要将 HTML 发送到 Pa11y 以登录页面?
- java - 如何在带有 Maven 的 OSGi 应用程序中使用 MySQL?
- datagrip - 为什么 Data Grip 一直连接到数据库?
- eclipse - Eclipse在内容辅助变量初始化时添加@NotNull注解
- grails - Grails 3 / GORM 从结果中剔除单个记录
- java - Maven Central 和 JCenter 是否容易被域名抢注?
- computer-science - 记录状态机——来自状态或转换?
- python - 为什么 glob 会从此文件目录返回一个空列表?