"如图左侧所示, git push 命令包含两部分信息,一个是被打成包的数据,叫 “packfile”;另一个是推送的命令,叫“commands”。“ packfile”和“commands”被推送到服务端后,“packfile”会走左侧的路径,首先进入“quarantine” 中,进行“隔离”。 当“commands”经过“pre-receive” 钩子检查,认为用户的权限 OK、提交说明 OK、提交修改的文件 ok,“packfile”才会从隔离区释放出来,进入对象库(objects)。(如果“ pre-receive” 钩子脚本失败,则删除隔离区,并返回错误信息,终止推送命令的执行。) 接下来“commands”会传递给内置的“ execute_commands()” 函数,实现分支的创建、更新、删除等操作。然后通过“repor()”函数报告给客户端,最后执行“ post-receive”钩子脚本,完成事件通知。 资源来源:电子书《阿里巴巴 DevOps实践手册》下载连接:https://developer.aliyun.com/topic/download?id=205"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。