将代码推送到我的 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 具有针对本地平台自动转换行结尾的“功能”。 我的一些项目为 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)。 然后检查它们。