我遇到了一个奇怪的问题,我的git提交消息中出现了很多^M字符。请查看附带的截图。这并不会引起任何问题,只是让阅读变得烦人。感谢任何建议。
在跨平台环境中使用Git的"正确方式"是:
学习并正确配置每个客户端中的core.autocrlf设置(点击此处查看文档)
阅读本地主题 "为什么应该在Git中使用core.autocrlf=true?" 作为良好的起点。
这是一个Windows的换行符。Windows和Linux中的换行符不同。
你可以使用dos2unix来删除它。
有多种方法可以进行操作:http://www.cyberciti.biz/faq/howto-unix-linux-convert-dos-newlines-cr-lf-unix-text-format/
CR LF
,在Linux上是LF
,而CR
显示为^M
,在Mac上,换行符(曾经?)是单个CR
。如果您设置了所需值的'fileencodings'
选项或者始终写入e ++ff=dos
,则无需使用dos2unix或类似工具,vim可以正确处理这个问题。 - ZyX我使用的是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()