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

文章讲述了在Windows系统中使用VSCode进行Git代码管理时遇到的问题,即修改文件后无故出现大量换行,导致Gitdiff显示整个文件被修改。问题可能源于Git的换行符自动转换功能以及VSCode的自动格式化设置。解决方案包括禁用VSCode的自动保存格式化选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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去掉,不让其格式化。 截图


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值