首頁>Club>
12
回覆列表
  • 1 # 使用者5087653267678

    設定 core.autocrlf=true 後:檢出時,git 會把文字檔案的換行符轉化為 CRLF(只轉化純 LF 的檔案)提交時,把暫存區的內容(也就是我們對工作區做的改動)轉化為 LF 然後放入版本庫。轉化暫存區的內容時,如果發現裡面存在 LF 換行符,LF 會被轉化成 CRLF,並給出題主提到的那條警告:"LF will be replaced by CRLF"這句警告的下面其實還有一句很重要的話:

    簡單來說,設定 core.autocrlf=true 後,我們工作區的檔案都應該用 CRLF 來換行。如果改動檔案時引入了 LF,或者設定 core.autocrlf 之前,工作區已經有 LF 換行符。提交改動時,git 會警告你哪些檔案不是純 CRLF 檔案,但 git 不會擅自修改工作區的那些檔案,而是對暫存區(我們對工作區的改動)進行修改。也因此,當我們進行 git add 的操作時,只要 git 發現改動的內容裡有 LF 換行符,就還會出現這個警告。設定 core.autocrlf=true, 只要保持工作區都是純 CRLF 檔案,編輯器用 CRLF 換行,就不會出現警告了(題主提的問題 2)。git 預設讓版本庫裡用 LF 換行,只要保持這條規則,多人協作就不會出什麼大問題。git 的 Windows 客戶端基本都會預設設定 core.autocrlf=trueLinux 最好不要設定 core.autocrlf,因為這個配置算是為 Windows 平臺定製。如果 Windows 上設定 core.autocrlf=false,倉庫裡也沒有配置 .gitattributes,很容易引入 CRLF 或者混合換行符(Mixed Line Endings,一個檔案裡既有 LF 又有CRLF)到版本庫,這樣就可能產生各種奇怪的問題(題主提的問題 1)。如果有換行符不匹配本地平臺的情況,我還是建議你用 dos2unix 之類的工具轉換下換行符,因為很多配置檔案是嚴格要求檔案編碼和換行符的,謹慎一點比較好。如果還有疑問,建議看看下面的連結:1. Dealing with line endings2. Git - 配置 Git3. git-config(1)

  • 中秋節和大豐收的關聯?
  • 如何看待美軍斥巨資打造“核能充電寶”,可能為鐳射武器供電?