赞
踩
公司电脑是window系统,从github上拉取代码,修改一个文件,只是增加了三行代码,但是整个文件都改变了。导致commit的时候很混乱,上千行代码中找不到 我修改的那三行,给我难受的。
两个方面可能造成这个结果,一方面是Git,另一方面是vscode这个编辑器。哎呀我一直以为是Git的问题。因为之前用Mac的时候没有出现这个问题。
Git提交文件,提示显示修改了整个文件,实际只操作了几行
不同操作系统使用的换行符是不一样的。Unix/Linux使用的是LF,Mac后期也采用了LF,但Windows一直使用CRLF【回车(CR, ASCII 13, r) 换行(LF, ASCII 10, n)】作为换行符。而git入库的代码采用的是LF格式,它考虑到了跨平台协作的场景,提供了“换行符自动转换”的功能:如果在Windows下安装git,在拉取文件时,会自动将LF换行符替换为CRLF;在提交时,又会将CRLF转回LF。但是这个转换是有问题的:有时提交时,CRLF转回LF可能会不工作,尤其是文件中出现中文字符后有换行符时。
参考:
git diff去除^M的方法
只改了一行代码,git diff显示整个文件都被修改了
Git提交文件,提示显示修改了整个文件,实际只操作了几行
我修改了但是并没有解决我的问题。
VSCode编辑器的问题
我发现我每次ctrl+S 目标文件总是莫名其妙的多一些转行和空格。
这是因为我这个项目是老项目,一些格式化还没用应用进去,导致会将文件大范围修改。这是要想不修改,就可以检查VSCode的配置问题。
我猜测是因为VSCode给我自动转行,格式化了。
修改方式:
vscode->file->preference->setting->搜索format
将下面on Save去掉,不让其格式化。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。