簡體   English   中英

如何重新檢出 Git 中的所有文件以從 CRLF 轉換為 LF?

[英]How do I re-checkout all files in Git to convert from CRLF to LF?

我有使用 CRLF 檢出的文件。 我改變了git config --global core.autocrlf false Git 沒有看到任何修改。 當我編輯一個文件時,Git 認為整個文件都發生了變化。 如何使用 LF 而不是 CRLF 重新簽出並覆蓋所有文件,以便差異按預期工作? 我看到了這個,但答案提到了一個無效的命令。 我看到了這個,但它說“Git 想要提交您尚未修改的文件”,這是不正確的。 我試過

git pull --force
git checkout --force

但是這些文件仍然有 CRLF。 那么如何將所有文件從 CRLF 轉換為 LF? 我可以在 Notepad++ 中編輯每個文件,並使用 Edit > EOL Conversions > Unix (LF),這是我在逐個文件的基礎上所做的,但它非常乏味。 也可能有一個awksed腳本,但我不熟悉它們,我寧願只修改簽入 Git 的內容,而不是搞砸.git/


也試過

git reset --hard origin/master

而且文件還在CRLF 中!


這不是建議的副本的副本,因為我不想提交任何內容。 只想從 Git 獲取一個新副本。 此外,Git 沒有看到任何文件被修改。

這似乎有效,但我不確定為什么。 它看起來非常可怕,有很多變化,但最終沒有改變任何東西。 第一行后我很擔心。

git rm --cached -r .
git reset
git checkout .

無需提交。

git add --renormalize . 然后提交所有更改的文件為我做了。

根據man git add它特別提到在core.autocrlf更改后運行它。

--重新歸一化

對所有跟蹤的文件重新應用“清理”過程,以將它們再次強行添加到索引中。 這在更改 core.autocrlf 配置或文本屬性以更正添加了錯誤 CRLF/LF 行結尾的文件后很有用。 此選項意味着 -u。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM