日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

git提交时”warning: LF will be replaced by CRLF“提示

發布時間:2023/11/21 综合教程 58 生活家
生活随笔 收集整理的這篇文章主要介紹了 git提交时”warning: LF will be replaced by CRLF“提示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天把項目做完之后,然后用Git準備提交代碼的時候,遇到warning: LF will be replaced by CRLF警告。


當時在網上查了資料,發現很多的解決辦法都是:修改git全局配置,禁止git自動將LF轉化成CRLF。

命令是:git config --global core.autocrlf false.

LF和CRLF的真相是什么

1.LF和CRLF都是換行符,在各操作系統下,換行符是不一樣的,Linux/UNIX下是LF,而Windows下是CRLF,早期的MAC OS是CR,后來的OS X在更換內核后和UNIX一樣也是LF.
這種不統一確實對跨平臺的文件交換帶來了麻煩。雖然靠譜的文本編輯器和 IDE 都支持這幾種換行符,但文件在保存時總要有一個固定的標準啊,比如跨平臺協作的項目源碼,到底保存為哪種風格的換行符呢?

2.Git 由大名鼎鼎的 Linus 開發,最初只可運行于 *nix 系統,因此推薦只將 UNIX 風格的換行符保存入庫。但它也考慮到了跨平臺協作的場景,并且提供了一個“換行符自動轉換”功能。

  • 安裝好 GitHub 的 Windows 客戶端之后,這個功能默認處于“自動模式”。
  • 當你在簽出文件時,Git 試圖將 UNIX 換行符(LF)替換為 Windows 的換行符(CRLF);當你在提交文件時,它又試圖將 CRLF 替換為 LF。
    所以Git在拉取代碼的時候,git會自動將代碼之中與你當前系統不同的換行方式自動轉換成當前系統的換行方式。
    這樣一來在提交代碼的時候,git會認為你未修改內容的文件也認為是修改過的,然后提示你warning: LF will be replaced by CRLF這樣的信息。

3.上面的解決辦法固然解決了很多人的問題,但是在某些情況下就不適用。這次項目中,在用fiskit框架npm deploy打包前端文件到后端路徑的時候,打包出來的文件用git進行commit的時候,提示LF和CRLF,文件的換行符被修改過,這時候也嘗試了上面的方法,也沒有用,最后在知乎上看到一篇文章https://www.zhihu.com/question/50862500,

有效的解決方法

如果設置core.autocrlf = false,那么很可能會出現CRLF和LF混合的情況,這樣會導致一些問題,例如git diff?失去功能,會發現很多行代碼并沒有修改,然而被認為是修改過了。
首先core.autocrlf = true在windows上才是正確的選擇,那么如何避免warning呢?還要有以下幾個步驟:

  • 添加.gitattributes
  • 設置core.safecrlf = true
  • 使用dos2unix、notepad++等工具來將LF轉換成CRLF

總結

以上是生活随笔為你收集整理的git提交时”warning: LF will be replaced by CRLF“提示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。