当前位置:   article > 正文

VSCode Git下来代码,修改无故多好多转行,导致Git diff修改了整个文件_vscode 保存时多出换行符

vscode 保存时多出换行符

VSCode Git下来代码,修改无故多好多转行,导致Git diff修改了整个文件

问题描述

公司电脑是window系统,从github上拉取代码,修改一个文件,只是增加了三行代码,但是整个文件都改变了。导致commit的时候很混乱,上千行代码中找不到 我修改的那三行,给我难受的。

问题解决过程:

两个方面可能造成这个结果,一方面是Git,另一方面是vscode这个编辑器。哎呀我一直以为是Git的问题。因为之前用Mac的时候没有出现这个问题。

  1. 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提交文件,提示显示修改了整个文件,实际只操作了几行
    我修改了但是并没有解决我的问题。


  1. VSCode编辑器的问题
    我发现我每次ctrl+S 目标文件总是莫名其妙的多一些转行和空格。
    这是因为我这个项目是老项目,一些格式化还没用应用进去,导致会将文件大范围修改。这是要想不修改,就可以检查VSCode的配置问题。
    我猜测是因为VSCode给我自动转行,格式化了。
    修改方式:
    vscode->file->preference->setting->搜索format
    将下面on Save去掉,不让其格式化。 截图


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/687404
推荐阅读
相关标签
  

闽ICP备14008679号