如何删除 git 上我的文件中显示的 ^M 字符[重复]

问题描述 投票:0回答:1

将代码推送到我的 git 存储库后,文件中每行末尾后显示 ^M 字符。我如何从那里删除这些字符。

这是 git 上的代码截图 [1]:https://i.sstatic.net/7T3A5.png

我使用了其他人建议的一些解决方案,例如--

git config --global core.autocrlf true

git config --global core.whitespace cr-at-eol

这些解决方案对我没有帮助。如果您有任何其他方法来解决它,请建议我。

git
1个回答
0
投票

Git 具有针对本地平台自动转换行结尾的“功能”。 我的一些项目为 Windows 和 Unix 平台构建文件 - 这些输出需要针对其目标正确,无论进行构建的平台是什么。 因此,我更喜欢阻止它进行任何转换并让文件始终保持不变。 现代文本编辑器可以毫无问题地呈现不同的行结尾,我不希望我的版本控制弄乱我的文件。

您需要执行以下所有步骤:

首先,必须通过以下方式禁用行尾更改行为:

git config --global core.autocrlf=false

其次,为了将来保持文件正确(在签入“固定”文件之前),请在项目的

root
(顶级目录)中签入 .gitattributes 文件,如下所示:

*.bat           text eol=crlf
*.cmd           text eol=crlf
*.properties    text eol=lf
*.pl            text eol=lf
*.py            text eol=lf

为了免生疑问root表示项目的顶级目录,与

.git
目录同级:

$ pwd
/Users/username/projects/the_project

$ ls -la
total 40
drwxr-xr-x  10 username  staff   320 30 Sep 14:00 .
drwxr-xr-x  77 username  staff  2464 20 Sep 19:05 ..
drwxr-xr-x   3 username  staff    96 28 Jun 12:01 .azuredevops
drwxr-xr-x  15 username  staff   480 10 Sep 15:10 .git
-rw-r--r--   1 username  staff    66 30 Sep 14:00 .gitattributes
-rw-r--r--   1 username  staff  1341 10 Sep 12:12 Makefile
-rw-r--r--   1 username  staff  1816  8 Jul 16:28 README.md
drwxr-xr-x   6 username  staff   192 10 Jul 11:24 src

最后,您需要修复不正确的本地文件。 将行结尾转换为 LF:

dos2unix filename

或 CRLF

unix2dos filename

(如果在 Windows 上,请使用 git-bash shell)。 然后检查它们。

© www.soinside.com 2019 - 2024. All rights reserved.