亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Windows下強制git使用LF而不是CR + LF?

如何在Windows下強制git使用LF而不是CR + LF?

Git
蕪湖不蕪 2019-11-03 04:04:29
我想強制git在Windows下使用LFnot 檢出文件CR+LF。我檢查了兩個配置選項,但找不到正確的設置組合。我希望它可以將所有文件轉換為LF并保留LF在文件上。備注:我曾經使用過,autocrlf = input但這只是在您提交文件時修復文件。我想強迫它使用它們LF??赡芪也惶宄捍鎯煲呀浽谑褂?,LF但是使用msysgit檢出的文件正在使用CR+LF,我想強制使用msysgit來獲取它們LF:強制Unix行結尾。>git config --list | grep crlfcore.autocrlf=input
查看完整描述

3 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

在Windows中獲取LF結尾的正確方法是首先設置core.autocrlf為false:


git config --global core.autocrlf false

如果使用的是msysgit,則需要執行此操作,因為它true在系統設置中將其設置為。


現在,git將不執行任何以規范化結尾的行。如果你想你的文件檢查是標準化的,這樣做:設置text=auto在您的.gitattributes所有文件:


* text=auto

并設置core.eol為lf:


git config --global core.eol lf

現在,您還可以通過運行將單個存儲庫切換到crlf(在工作目錄中?。?。


git config core.eol crlf

完成配置后,您可能希望git規范化repo中的所有文件。為此,請轉到存儲庫的根目錄并運行以下命令:


git rm --cached -rf .

git diff --cached --name-only -z | xargs -n 50 -0 git add -f

如果現在希望git也將工作目錄中的文件標準化,請運行以下命令:


git ls-files -z | xargs -0 rm

git checkout .



查看完整回答
反對 回復 2019-11-04
?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

盡管這些都不適合我,但我經常會回到這個答案。就是說,對我來說正確的答案是其他答案的混合體。


我發現有效的方法如下:


 git config --global core.eol lf

 git config --global core.autocrlf input

對于在設置了這些全局設置之后簽出的回購協議,所有內容都將按照回購協議中的內容進行簽出–希望LF(\n)。任何CRLF都將LF在簽到時轉換為僅。


對于已經簽出的現有倉庫(倉庫中有正確的行尾而不是工作副本),可以運行以下命令來修復它:


git rm -rf --cached .

git reset --hard HEAD

這將從當前目錄()中rm遞歸(r)刪除(),而不提示(-f)除已編輯(--cached)以外的所有文件.。在reset隨后返回所有這些文件到他們自己的真實行結束(匹配什么在回購)的狀態。


如果您需要在回購中修復文件的行尾,我建議使用一種編輯器,該編輯器可以讓您像IntelliJ或Sublime Text一樣批量執行此操作,但是我敢肯定,任何好的軟件都可能會支持這一點。



查看完整回答
反對 回復 2019-11-04
  • 3 回答
  • 0 關注
  • 725 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號