开发者社区> 问答> 正文

为什么说这个 git push 命令特殊呢?

为什么说这个 git push 命令特殊呢?

展开
收起
与时俱进的探索者 2021-11-06 21:51:15 1046 0
1 条回答
写回答
取消 提交回答
  • "因为它的目标分支是一个包含特殊的前缀“ 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"

    2021-11-08 21:14:09
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
新一代高效Git协同模型 立即下载
AGit-Flow:新一代高效Git协同模型 立即下载
AGit-flow:新一代高效Git协同模型 立即下载