我有一些使用CRLF换行符的文件。我更改了
git config --global core.autocrlf false
。Git 没有检测到任何修改。当我编辑一个文件时,Git 认为整个文件都被更改了。如何重新检出并用 LF 覆盖所有文件,以便 diff 可以按预期工作?我看到了这个,但是答案引用了一个无效的命令。我还看到了这个,但是它说“Git 要提交您没有修改的文件”,这是不正确的。我尝试过git pull --force
git checkout --force
然而,这些文件仍然有CRLF。我该如何将所有文件从CRLF转换为LF?我可以在Notepad ++中编辑每个文件,并使用编辑> EOL转换> Unix(LF)进行操作,这是我按文件逐个处理的方法,但这非常繁琐。可能还有一个awk或者sed脚本,但我不熟悉它们,我更愿意只修改被检入Git的内容,而不是弄乱.git/。
也尝试过:
git reset --hard origin/master
文件仍带有CRLF!
这不是建议中的重复,因为我不想提交任何内容。只想从Git获取一份新的副本。另外,Git没有看到任何文件被修改。
git reset --hard
工作:首先使用rm .git/index
或者用git rm -r --cached .
清除索引。 - phddos2unix
。也许像perl
这样的替代命令适用于你。 - Rory O'Kane