2012-03-22 177 views
6

我有一个奇怪的问题,其中有很多^ M字符出现在我的git commit消息中。请找到附件。这不会造成任何问题,只是让人烦透了。^在Git commit消息中的M个字符(git commit -v)

enter image description here

提示赞赏。

+0

“混帐提交信息”不相关截图内容,标题是误导 – 2012-03-22 16:27:00

+0

这是我的git的承诺-v,如果对不起,我没有确切。 – Hendrik 2012-03-24 15:05:02

回答

9

“有道”,如果你在跨平台环境中使用Git的,违背Abhijeet的回答是:

了解并正确配置core.autocrlf设置每个客户

读取本地话题"Why should I use core.autocrlf=true in Git?"作为很好的起点

+0

看来我错过了这一点。你是对的! – Kjuly 2012-03-22 16:26:17

+0

谢谢,这工作!我也将我的所有文件转换为unix格式,看起来像我在Windows上开发的repo。 – Hendrik 2012-03-24 15:17:16

5

这是一个Windows换行符。换行符和windows & linux是不同的。

您可以使用dos2unix将其删除。

做的各种方法:http://www.cyberciti.biz/faq/howto-unix-linux-convert-dos-newlines-cr-lf-unix-text-format/

+2

不完全正确:它是Windows换行符的*部分*。在windows上,newline是'CR LF',在linux上是'LF','CR'是'^ M',在mac新行上是(是?)一个'CR'。没有必要使用dos2unix或类似的,如果你设置''fileencodings''选项的所需值,或者总是写'e ++ ff = dos',那么vim可以正确处理这个问题。 – ZyX 2012-03-22 17:04:15

0

我在Windows上,做了不想将autocrlf设置为true。我工作围绕这一问题通过将在我的.vimrc以下

" settings for git commit messages 
function GitCommitSettings() 
    %s/^M//g    " remove ^M added by git diff 
    syntax sync fromstart " refresh syntax highlight after replace 
    1      " move to line 1 
endfunction 
au BufNewFile,BufRead COMMIT_EDITMSG call GitCommitSettings()