CRLF Problem in Batch file with Git
最近遇到一個問題我有一個 Project 裡面含有數個 .bat 檔案。
平常執行起來並沒有什麼問題,但是一旦經過 Git Commit 過後;就執行不起來了!
這個是什麼狀況呢?
原來是在於 git 原本是用來維護 Linux 原始碼的,因此內部使用的斷行符號為 LF。
當你在 commit 的時候,它會自動將你的文字檔案之中的斷行符號轉為 LF。
也就是說即使你在 Windows 裡面編輯 (Windows 的 Break 為 CRLF 有兩個字元)。
它也會將 CRLF 轉換成為 LF!但是 Windows CMD 是仰賴 CRLF 去判斷 statement。
轉換過就會造成執行錯誤。
解決方法是在專案裡加上一個 .gitattribute 檔,它可以讓 git 知道你要如何處裡這個 Project。
並且在裡面加上這行
*.bat text=false
這樣的話當 git 遇到 *.bat 需要 commit 的時候,不會自動地轉換我們的 CRLF。Chia Xin
沒有留言:
張貼留言