因此,我认为这可能与textmate有关,但是我们在一个小型团队中工作,由于git中几乎相同的文件存在全文件冲突,因此存在一些问题,因为一个分支的每一行都附加了^ M。
这个神秘^M
人物应该做什么,它可能从哪里来?
我们的开发人员在Windows / Mac上使用emacs,在Mac上使用TextMate,在Mac上使用coda,偶尔使用wp-admin文本编辑器。
有人遇到过其中一个问题吗?
因此,我认为这可能与textmate有关,但是我们在一个小型团队中工作,由于git中几乎相同的文件存在全文件冲突,因此存在一些问题,因为一个分支的每一行都附加了^ M。
这个神秘^M
人物应该做什么,它可能从哪里来?
我们的开发人员在Windows / Mac上使用emacs,在Mac上使用TextMate,在Mac上使用coda,偶尔使用wp-admin文本编辑器。
有人遇到过其中一个问题吗?
Answers:
在git-config中,设置core.autocrlf
为true
使git自动为您的平台正确转换行尾,例如,运行以下命令进行全局设置:
git config --global core.autocrlf true
我认为这是Windows人士,因为他们喜欢CRLF。在以Unix方式显示之前,Unix喜欢LF,而Mac喜欢CR。
要使^ M在git中消失,请输入:
git config --global core.whitespace cr-at-eol
积分:https : //lostechies.com/keithdahlby/2011/04/06/windows-git-tip-hide-carriage-return-in-diff/
--global
,仅配置当前存储库。
它们与DOS样式的行尾和Unix样式的区别有关。查阅Wikipedia文章。您也许可以找到一个dos2unix工具来提供帮助,或者只是编写一个小的脚本自己进行修复。
编辑:我在这里找到以下Python示例代码:
string.replace( str, '\r', '' )
我在Mac OS上使用Android Studio(JetBrains IntelliJ IDEA),我的问题是^ M开始出现在GitHub的 pull请求中的某些文件中。对我有用的是更改文件的行分隔符。
在编辑器中打开所需的文件,然后依次转到“ 文件”和“ 行分隔符”,然后 为您选择最佳选项 (对我来说,这是LF-Unix和OS X(\ n))
根据下一篇文章,此问题是由于操作系统之间的行尾混淆而导致的: http //jonathonstaff.com/blog/issues-with-line-endings/
您可以在这里找到更多信息:https : //www.jetbrains.com/help/idea/configuring-line-separators.html#d84378e48
除了查询替换,您还可以使用Mx delete-trailing-space
将以下~/.emacs
物品放入您的(或等价物)中
(defun dos2unix ()
"Replace DOS eolns CR LF with Unix eolns CR"
(interactive)
(goto-char (point-min))
(while (search-forward "\r" nil t) (replace-match "")))
然后您就可以简单地使用M-x dos2unix
。
正如每个人都提到的。这是不同的行结束样式。MacOSX使用Unix的行尾-即LF(换行)。
Windows使用CR(回车)和LF(换行)作为行尾。由于您同时使用Windows和Mac,多数民众赞成在此问题的根源。
如果您在Windows中创建文件,然后将其放到Mac上,您可能会在行尾看到这些^ M字符。
如果要删除它们,可以在emacs中轻松完成此操作。只需突出显示并复制^ M字符,然后用QueryM替换^ M就可以了。
编辑:其他一些链接可能会有所帮助。 http://xahlee.org/emacs/emacs_adv_tips.html
这可以帮助您将emacs配置为使用特定类型的行尾样式。 http://www.emacswiki.org/emacs/EndOfLineTips
对我来说,解决方案是使用此Emacs Wiki文章中提供的以下elisp函数。
(defun dos2unix ()
"Not exactly but it's easier to remember"
(interactive)
(set-buffer-file-coding-system 'unix 't) )
M-x dos2unix
在缓冲区上执行该功能并保存文件,所有内容^M
都会消失。