Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除git上文件中显示的^M字符_Git - Fatal编程技术网

如何删除git上文件中显示的^M字符

如何删除git上文件中显示的^M字符,git,Git,在我的git存储库中推送代码后,文件中每行末尾都会显示^M个字符。如何从中删除这些字符 这是git上的代码截图 [1] : 我使用了一些其他人建议的解决方案,比如-- git config--global core.autocrlf true git config——eol处的全局core.whitespace cr 这些解决方案对我没有帮助。如果您有任何其他解决方法,请向我推荐。Git具有为本地平台自动转换线端的“功能”。我的一些项目同时为Windows和Unix平台构建文件——这些输出需要适

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

这是git上的代码截图 [1] :

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

git config--global core.autocrlf true

git config——eol处的全局core.whitespace cr

这些解决方案对我没有帮助。如果您有任何其他解决方法,请向我推荐。

Git具有为本地平台自动转换线端的“功能”。我的一些项目同时为Windows和Unix平台构建文件——这些输出需要适合于它们的目标,而不管构建的平台是什么。因此,我倾向于阻止它进行任何转换,并使文件始终保持不变。现代的文本编辑器可以毫无问题地呈现不同的行尾,我不希望我的版本控制弄乱我的文件

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

首先,必须通过以下方式禁用线路末端改变行为:

git config --global core.autocrlf=false
其次,为了在将来保持文件的正确性(在签入“固定”文件之前),请在项目根目录中签入
.gittributes
文件,如下所示:

*.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)。然后将它们签入。

不要使用Windows。添加预读脚本以从文件中删除
\r
(在Windows上)。祝你好运。这能回答你的问题吗@sanjeevRm我怀疑现在很多开发人员甚至不知道什么是“emacs”。该问题的标题不利于在Git问题的上下文中进行后续操作。这可能是现有的最佳答案:Git config--global core.autocrlf=false它不工作,但对我有效--将.gittributes文件放在我的项目根目录中解决了我的问题problem@RaviKumar是的,
git config
只是第一部分——防止未来的变化;您需要执行上述所有步骤。如果对你有效,请投票并接受