我最近一直在为我的项目团队编写 git hooks。我想知道开发人员是否在不遵循标准提交消息模式的情况下在本地进行各种提交。然后他们推送这些提交。是否会因为提交未遵循模式而导致推送失败?
期望的结果是他们能够按照自己的意愿在本地提交,然后在返回到主要公司分支机构时被迫遵循结构化方式。
想法?这是最佳做法吗?
最佳答案
诀窍是:git hooks未发布(推/pull )
因此,如果您的项目成员推送到一个裸仓库,其中服务器端 Hook (pre-receive
或 update
)检查提交消息模式(我是不确定是否可以完成),推送将失败。
但是提交存在于开发人员的本地存储库中,他/她仍然必须修复它(git commit --amend
如果没有其他提交已经完成)。
最好是:
- 用正确的钩子(Hook)制作一个模板 Git repo
- 确保开发人员使用引用正确通用模板的 --template 选项初始化他们的存储库。
参见 template directory sectiongit init
的。
那样的话,它们会比在服务器端更快地失败(在服务器端可以推送 n 个不正确的提交,并且会失败)
在其他工作中,这里使用客户端 Hook 会更合适。
关于git hooks 推送和本地提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3363262/