来源:NanCheung`s Blog
链接:https://blog.nancheung.com
/archives/git文件未修改但是wsl上使用gitstatus都显示modified
商业转载请联系作者获得授权,非商业转载请注明出处。
最近windows升级到2004后,尝试全面转WSL2来操作命令行,但是今天我在写一个小玩意的时候,刚在idea中将所有文件提交了commit,准备使用WSL2来操作git整理一下历史commit,发现结果和想象的不太一样。
我本来准备使用 git rebase -i HADE~2
来合并最新的commit,结果提示我有代码未提交。
我在wsl上使用 git status
查看发现所有文件都显示 modified
状态。我又在windows上使用该命令,发现文件确实已提交。
后来经过排查,发现是wsl上的git是linux环境,所以使用LF作为行结束符,而windows却是使用CRLF结尾,因此windows和linux上的git产生了不一样的结果。
最后我通过修改wsl上的git配置 git config --global core.autocrlf true
设置为crlf结尾,然后再使用 git status
查看,果然一切正常了。
最后,附上WSL上别人提的一个issues:https://github.com/Microsoft/WSL/issues/184
里面有些人遇到了一些更复杂的情况,同时也有人提供了解决方案。