git config --global core.autocrlf false
TortoiseGit
很多從 TortoiseSVN 走過來的同學很可能會選用 TortoiseGit 作為主力客戶端,那么也需要配置一下。在 Windows 資源管理器窗口中點擊右鍵,選擇“TortoiseGit → Settings → Git”,做如下設置。
(由于 TortoiseGit 實際上是基于 Git for Windows 的一個 GUI 外殼,你在上一節所做的設置會影響到上圖這些選項的狀態,它們可能直接就是你所需要的樣子了。)
GitHub 的 Windows 客戶端
它是今天的第二被告。這貨很容易上手,很適合小白,我主要用它來一鍵克隆項目到本地??赡苷菫榱司S護簡潔易用的親切形象,這貨并沒有像 TortoiseGit 那樣提供豐富的選項(對“換行符自動轉換”這樣的細節功能完全諱莫如深啊,我這樣的小白死了都不知道怎么死的……)。因此,我們需要手動修改一下它的配置。
GitHub 的 Windows 客戶端實際上也是一個殼,它自帶了一個便攜版的 Git for Windows。這個便攜版和你自己安裝的 Git for Windows 是相互獨立的,不過它們都會使用同一個配置文件(實際上就是當前用戶主目錄下的 .gitconfig 文件)。
所以如果你已經配置好了自己安裝的 Git for Windows,那就不用操心什么了。但如果你的機器上只裝過 GitHub 的 Windows 客戶端,那么最簡單的配置方法就是手工修改配置文件了。
修改 Git 的全局配置文件
進入當前用戶的主目錄(通常 XP 的用戶目錄是 C:\Documents and Settings\yourname,在 Vista 和 Win7 下是 C:\Users\yourname),用你最順手的文本編輯器打開 .gitconfig 文件。
在 [core] 區段找到 autocrlf,將它的值改為 false。如果沒找到,就在 [core] 區段中新增一行:(最終效果見圖)
autocrlf = false
事實上上面介紹的所有命令行或圖形界面的配置方法,最終效果都是一樣的,因為本質上都是在修改這個配置文件。
還有
關掉了 Git 的“換行符自動轉換”功能就萬事大吉了嗎?失去了它的“保護”,你心里會有點不踏實。你可能會問:如果我不小心在文件中混入了幾個 Windows 回車該怎么辦?這種意外可以防范嗎?
事實上 Git 還真能幫你阻止這種失誤。它提供了一個換行符檢查功能(core.safecrlf),可以在提交時檢查文件是否混用了不同風格的換行符。這個功能的選項如下:
false - 不做任何檢查
warn - 在提交時檢查并警告
true - 在提交時檢查,如果發現混用則拒絕提交
我建議使用最嚴格的 true 選項。
和 core.autocrlf 一樣,你可以通過命令行、圖形界面、配置文件三種方法來修改這個選項。具體操作就不贅述了,大家自己舉一反三吧。
最后
你可能還會問,如果我自己一不小心用編輯器把整個文件的換行符都轉換成了另一種格式怎么辦?還能預防嗎?
這……我就真幫不了你了。所以還是建議大家在提交文件之前多留心文件狀態:
如果發現變更行數過多,而且增減行數相同,就要警惕是不是出了意外狀況。被圖形界面慣壞的孩子往往缺乏耐心,對系統信息視而不見,看到按鈕就點,容易讓小疏忽釀成大事故。所以高手們青睞命令行,并不是沒有道理的。
好了,小伙伴們,今天的《踩坑歷險記》就到這兒,我們下集再見!祝大家編碼愉快!
原文轉自:https://github.com/cssmagic/blog/issues/22