【问题标题】:how can I enforce english language in a git commit message?如何在 git commit 消息中强制使用英语?
【发布时间】:2018-05-21 15:35:25
【问题描述】:

是否可以在提交消息中强制使用英语?

目前,我们项目中的 git commit 消息混合了 2 种语言,团队一直忘记 git 消息的良好做法。我们至少可以显示一个警告吗?

谢谢

【问题讨论】:

  • 可能是自定义提交挂钩?
  • 当然是一个钩子。但是用什么代码?我不是要完整的答案,只是一些方向。例如,是否有任何网络服务可以推断文本语言?

标签: git policy commit-message


【解决方案1】:

如果你能找到一个程序查看一段文本并告诉你它是否认为该文本块是英语以外的语言,我想你可以设置挂钩。

寻找/推荐一个以这种方式处理文本的工具对于 SO 来说是题外话;所以我只会说我认为这将是具有挑战性的。但假设你有一个,你将有两个选择。您可以执行以下一项或两项操作:

首先,您可以创建一个预提交挂钩。这是一个在本地运行的挂钩,因此必须由每个开发人员设置。 (这意味着它只有在开发人员愿意合作的情况下才会运行。)优点是任何问题都会被立即发现。

其次,您可以在共享存储库上创建一个预接收挂钩(例如,通常是 origin),假设它的托管方式允许您设置挂钩。这样做的好处是,在设置新的本地存储库时,或者不合作的开发人员都无法绕过它。但是,如果开发人员在本地多次提交不可接受的消息,然后尝试推送,则他们必须执行交互式 rebase 之类的操作来编辑所有消息,然后才能推送。

当然,您可以将两者结合使用,这样 pre-receive 挂钩会在共享 repo 中强制执行规则的完整性,并且避免返工的愿望会激励开发人员设置本地 pre-提交钩子也是如此。

如果你想这样做,我建议你查看 git hook 文档:https://git-scm.com/docs/githooks

【讨论】:

  • 是的,我知道钩子,但问题出在另一部分(“一个查看文本块并告诉您它是否认为该文本块使用的语言不是英语”)。那么,也许问题应该有所不同。但令我惊讶的是,像这样的东西还没有作为 git-hook 存在。
【解决方案2】:

好吧,您可以使用预提交挂钩来运行脚本,以验证您的提交。

因此,如果您可以找到一个程序,可以确定它是否是有效的英语,那么您可以验证您的提交。

或者您可以使用拉取请求,然后拒绝任何非英语提交。

【讨论】:

    猜你喜欢
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    • 2012-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多