# [GIT] 關於 GIT 的 ^M 的二三事

在多人協同工作中,若是作業系統不同,可能會出現有些人的 git log 中的改變總是在行末多了 ^M 的標誌。但是在編輯器中可能又顯示不出來。

這如幽靈般的符號到底是怎麼回事呢?

其實在不同的 OS 中,文本的文件所使用的換行符號是不同的。Unix Like (例如 MacOS, Linux) 使用的是 0x0A (LF) 。但是在 Windows 使用的是 0x0D0A (CRLF)

而 GIT 預設會其實會自動幫你轉換。但是這個轉換功能有時候會失靈。

這時,你就會看到上面那個 幽靈符號 了!

# 解決方法

一、在 GIT log 中隱藏顯示這個符號

我們可以在讓 git 在 gitconfig 中加上這行使得 git 不要秀出 ^M

git config --global core.whitespace cr-at-eol

二、Commit 時轉換為 LF。

git config --global core.autocrlf input

# 結論

這狀況其實是我最近在 WSL 中 commit 修改時發生的。

一開始也是一臉茫然,後來才知道原來關於文件換行還有這段淵源。

趁機紀錄一下,希望能幫到碰到跟我一樣狀況的人。

Like z20240z's work