如何在Git中重新检出所有文件,将CRLF转换为LF?
解决Git检出文件始终为CRLF的问题
我太懂这种闹心的情况了——明明关了autocrlf,Git却还是死咬着CRLF不放,diff全红根本没法正常用。不用手动逐个转格式,也不用碰awk/sed脚本,按下面的步骤走,就能直接拿到LF格式的全新本地副本:
步骤1:确认全局autocrlf配置
先再核对一遍你的全局配置是否真的生效,执行:
git config --global core.autocrlf
如果输出不是false,重新设置一次:
git config --global core.autocrlf false
步骤2:让Git默认用LF检出(全局/仓库级二选一)
- 要是想让所有仓库都默认用LF,就设全局配置(完全不碰
.git目录):git config --global core.eol lf - 要是只针对当前仓库(会改动
.git/config,介意的话选上面的全局配置):git config core.eol lf
这个配置会明确告诉Git:检出文件时强制用LF换行符。
步骤3:清除Git的文件索引缓存
Git的索引里大概率缓存了旧的换行符状态,先把所有文件从索引中移除(不会删除本地文件):
git rm --cached -r .
步骤4:重新生成索引并强制检出LF格式文件
先把文件重新加入索引,让Git读取新的换行符规则:
git add .
最后强制检出,让Git用LF格式覆盖你的本地文件:
git checkout --force .
做完这些,你本地的所有文件就都会变成LF格式了,diff功能也能正常工作。整个过程不需要提交任何内容,完全是本地检出状态的调整,不会影响远程仓库。
内容的提问来源于stack exchange,提问作者Chloe
相关产品推荐
相关产品推荐

