java - 有没有办法在提交到 Git 之前强制执行 IntelliJ 代码样式格式?

标签 java git intellij-idea ide githooks

<分区>

我们希望为所有团队创建一个通用的代码风格,以解决不同格式导致文件在代码审查期间看起来“脏”的问题,尽管它们不包含实际有意义的更改

步骤:

  1. 创建 InteliJ 代码样式 XML
  2. 将此 XML 导入我们所有的 IDE (InteliJ)
  3. 转到每个 git 存储库 (~30) 并创建一个将重新格式化所有代码的提交。

我的问题是,有没有一种方法可以强制从现在开始所有提交都将与这种新格式保持一致?

例如,如果开发人员尝试提交未格式化的代码,则会收到错误消息,并且推送会中止。

最佳答案

如果您使用 IntelliJ 提交代码,您可以在 IDE 上配置一些“提交前”规则。

在 Windows 上,转到文件 -> 设置 -> 版本控制 -> 提交对话框。 您将看到 3 个复选框:“重新格式化代码”、“重新排列代码”、“优化导入”。

在 Mac 上 -> 首选项 -> 版本控制 -> 提交对话框。

当然,如果您通过 IDE 提交,这只会应用您的样式。

如果你想要一个简单的 GIT 解决方案,你应该看看 git hooks。钩子(Hook)是允许您扩展 git 功能的一小段代码(您可以称它们为插件)。您还可以将它们作为项目的一部分进行版本控制。

这是对如何解决您遇到的相同问题的非常详细的解释:https://proandroiddev.com/ooga-chaka-git-hooks-to-enforce-code-quality-11ce8d0d23cb

Git hooks 也可以应用于基于 Git 的更复杂的代码管理解决方案,(即:bitbucket)。

关于java - 有没有办法在提交到 Git 之前强制执行 IntelliJ 代码样式格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52722252/

相关文章:

java - JPA实体管理器从实体createQuery,不同的包但名称相同

java - 以编程方式生成excel文档

git - 如何 Git diff 两个分支但显示类似于 Git 提交的输出?

git - 一个目录中的多个 Git 存储库

java - 如何调试第三方Intellij IDEA插件?

java - 在 Netbeans 平台上快速开始编程

java - 打破听众的递归

Git:推送后更改时间戳

java - java反射可以将不在java源文件中的方法添加到类文件中吗?

java - 在 intelliJ 中自动生成 Javadoc 注释?