繁体   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