"因为它的目标分支是一个包含特殊的前缀“ refs/for/”的代码分支,分支后面又跟了一个“ ” 。这个“”用于区分本地分支名,不同开发者提交的代码评审包含不同的“”,所以不会相互覆盖。 我们还可以通过“-o”来传递不同的参数,比如可以指定由谁来对我的代码进行评审,我的代码评审会关联哪个“issue”。这些操作都可以通过“git push”命令完成,后来我们发现这个 git push 命令比较复杂,于是我们封装了一个命令行工具 git-repo。目前 git-repo 已经对外开源,大家可以免费使用。接下来这个“Push”命令就会打入到服务端,服务器端会启动一个进程“gitreceive-pack”。(我们对服务器端的前端授权模块做了一些修改,使其能够识别这个特殊的 git push 命令,允许只读用户也能“Push”)如上图所示,“git-receivepack”我做了星号标记,因为它是一个特殊的“git-receive-pack”。当它发现 push 命令的目标是一个特殊的引用后,它不会走 Git 原来内部的工作流,而是走“外部钩子”。资源来源:电子书《阿里巴巴 DevOps实践手册》下载连接:https://developer.aliyun.com/topic/download?id=205"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。