Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 只允许来自某个分支的合并?_Git - Fatal编程技术网

Git 只允许来自某个分支的合并?

Git 只允许来自某个分支的合并?,git,Git,考虑以下分支设置: 生产部门 质量保证处 分段分支 几个发展分支 是否有一种方法仅允许从特定分支进行合并,例如允许生产分支仅接受来自qa分支的合并,但拒绝来自暂存/开发分支的合并 我们的目标是确保只有经过某个分支及其相关工作流的内容才会在生产分支中结束,并使用git进一步实施这一点。假设您的开发人员推送到一个中央存储库,您可以安装一个更新钩子来实施您的策略: #/垃圾箱/垃圾箱 log(){printf%s\\n“$*”;} error(){log“error:$@”>&2;} 致命(){错

考虑以下分支设置:

  • 生产部门
  • 质量保证处
  • 分段分支
  • 几个发展分支
是否有一种方法仅允许从特定分支进行合并,例如允许生产分支仅接受来自qa分支的合并,但拒绝来自暂存/开发分支的合并


我们的目标是确保只有经过某个分支及其相关工作流的内容才会在生产分支中结束,并使用git进一步实施这一点。

假设您的开发人员推送到一个中央存储库,您可以安装一个
更新
钩子来实施您的策略:

#/垃圾箱/垃圾箱
log(){printf%s\\n“$*”;}
error(){log“error:$@”>&2;}
致命(){错误“$@”;退出1;}
REF=$1
旧=2美元
新=3美元
#忽略正在删除或创建的引用
案例0000000000000000000000000000000000000000
“${NEW}”|“${OLD}”)退出0;;
以撒
中的案例${REF}
参考/主管/生产)
git版本列表--没有合并“${OLD}”。“${NEW}”|
而IFS=读取-r版本;做
git合并基——是祖先“${rev}”refs/heads/qa\
||致命“${rev}必须合并到qa\
在合并到生产之前”
完成
;;
以撒

(上面的钩子根本没有经过测试。如果遇到任何问题,请告诉我。)

我想这不属于纯Git的范围,是Gerrit之类的代码审查工具的领域。@LarsNoschinski,钩子仍然可以处理这个问题。