2017-08-28 133 views
1

如果代码符合某些条件,是否可以设置IDEA以防止被提交的索引,例如包含一些特殊注释,如//failcommitIntelliJ IDEA VCS规则失败提交

如果在修改后的文件中有//todo//fixme注释,IDEA会提醒您。我想配置类似的东西,而不是警告它应该阻止提交操作。

+0

不是我所知道的。您可以使用CI技术和分支来实现大致相同的事情。 –

回答

3

如何让git做提交检查和失败,而不是intellij?那么,你使用的是什么IDE并不重要。如果这是可以接受的,那么你可以设置一个git pre-commit钩子,如果找到了目标注释,就会失败。

GIT中钩文档:https://git-scm.com/book/gr/v2/Customizing-Git-Git-Hooks

例pre-commit钩子如果 'FIXME' 被任何地方发现失败:https://gist.github.com/kuy/5d1151fd5897a9b84c06

+0

听起来合理。将尝试这样做。你知道IDEA如何处理这些钩子吗? –

+1

IDEA发出一个git命令,并且默认情况下git会自动运行挂钩(除非您在IDEA中明确禁用“运行GIt挂钩”选项)。大多数挂钩应该工作,除非他们操作索引。 –

2

,我们在没有IDEA设置来进行配置。您可以开发自己的CheckinHandler来执行此操作,并将其添加到Before commit部分。

问题是为什么你需要这个?为什么允许您取消提交的警告不是一种选择?你可以为TODO配置一个自定义模式。

使用git挂钩是另一种选择。

顺便说一句,IDEA不提交索引。它承诺个人文件,使用git commit --only

+0

回答你的问题'为什么你需要这个?'很可能是因为我们有atm的错误方法。 “TODO”和“FIXME”评论通常用于标记债务,因此应该在稍后承诺和处理。因此跳过警告对话成为一种习惯(坏习惯)。但是为了解决阻塞问题(一两天,直到有人在后端修复它),我们必须做一些非常肮脏的黑客攻击,不应该以任何方式承诺。当我想标记该黑客以防止提交时,就是这种情况。 –

+0

然后我会用git钩子去 –