Git钩子:推送和本地提交

3

我最近为我的项目团队编写了git钩子。我想知道如果开发人员在本地制作各种提交,而不遵循标准的提交消息模式,那么他们推送这些提交时会失败吗?

期望的结果是他们可以随意在本地提交,然后在推回主公司分支时被强制遵循结构化的方式。

你有什么想法吗?这是最佳实践吗?


如果你编写了一个钩子,用于拒绝他们的推送,如果他们的提交不遵循模式,那么是的。你具体在问什么? - Cascabel
我的问题是,如果我编写一个提交钩子来检查模式,而他们在本地不遵循该模式,那么他们的推送会失败吗?还是有一个推送钩子? :) 如果我没有表达清楚,对不起。 - Mahdi Yusuf
1个回答

6
诀窍在于: git hooks不会被发布(推送/拉取)。
因此,如果您的项目成员将代码推送到一个裸仓库,其中一个服务器端钩子(pre-receiveupdate)检查提交消息模式(我不确定是否可以完成),那么该推送将失败。但是提交内容仍然存在于开发人员的本地存储库中,他/她仍然需要修复它(如果没有其他提交,则使用git commit --amend)。
更好的方法是:
  • 创建一个带有正确钩子的模板Git存储库
  • 确保开发人员使用引用正确公共模板的--template选项初始化其存储库。请参见git init模板目录部分
这样,他们将比服务器端更快地失败(在那里可以推送n个不正确的提交,并且会失败)。
换句话说,在此处使用客户端钩子更为合适。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接