You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

求助:如何禁用VSCode提交代码至GitHub时的自动格式化功能

解决VSCode提交GitHub前自动格式化代码的问题

我完全懂你这种四处排查却找不到根源的抓狂感!咱们一步步来定位并解决这个问题:

1. 先排查Git预提交钩子(最可能的原因)

很多时候这种提交前自动格式化不是VSCode的锅,而是Git的预提交钩子在暗中操作。你可以:

  • 打开项目根目录下的.git/hooks文件夹(这个文件夹默认是隐藏的,需要显示隐藏文件)
  • 查看是否存在名为pre-commit的文件,如果有,打开它看看里面有没有调用格式化工具的脚本(比如针对Java的google-java-formatspotless,或者通用的代码修复工具)
  • 如果确认是这个钩子在搞鬼,你可以:
    • 备份这个文件后直接删除它
    • 或者修改脚本,去掉里面的格式化逻辑

2. 检查VSCode自带的Java扩展格式化设置

你的代码是Java,VSCode的「Language Support for Java by Red Hat」扩展自带了格式化功能,就算你卸载了Prettier,它也可能在提交时触发:

  • 打开VSCode的设置(快捷键Ctrl+,/Cmd+,),搜索「Java Format」
  • 把「Enable Java Formatting」选项勾选掉
  • 或者直接在settings.json里添加配置:
    "java.format.enabled": false,
    "java.format.settings.url": ""
    

3. 确认工作区/全局设置里的隐藏格式化开关

有时候工作区的设置会覆盖全局设置,你需要检查:

  • 打开项目的.vscode/settings.json(如果有的话),确认里面没有开启以下选项:
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
      "source.fixAll": true
    }
    
  • 全局的settings.json也要再确认一遍,确保editor.formatOnTypeeditor.formatOnSave都是false

4. 用Git命令行提交测试,定位问题根源

跳过VSCode的UI,直接在终端里执行提交命令:

git add .
git commit -m "测试提交是否格式化"
  • 如果代码没有被格式化,说明问题出在VSCode的Git集成功能上,可以尝试重置VSCode的Git相关设置(在设置里搜索「Git: Reset Settings」)
  • 如果代码还是被格式化,那肯定是Git层面的配置(比如全局Git钩子、项目的格式化工具配置),需要继续排查项目里的格式化配置文件(比如spotless-maven-plugin这类插件配置)

按照这个顺序排查,应该能找到问题所在!

内容的提问来源于stack exchange,提问作者bcarroll2k3

火山引擎 最新活动