2012-03-22 121 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()