git - 如何防止 git 分支被 merge 到另一个?

标签 git version-control workflow bitbucket githooks

在常见的(基于 git 的)开发工作流程中,维护一个 master分支机构和一个next (或 dev )用于测试目的的分支:

  • 特征分支从 master 开始并 merge 到next用于检测。如果认为稳定,功能分支可以 merge 到 master .
  • master定期 merge 到next
  • next定期倒带(例如,在发布后)。
  • next分支不应 merge 到 master 中分支机构

能够自动阻止 next 的 merge 会很有用进入master ,直接或通过基于 next 的另一个分支. 如何使用 git 完成这一任务?

注意:如this question中所述,可以使用 git hooks 来防止在具有完全访问权限的远程存储库上进行这些类型的 merge 。但是,这(大概)对于像 BitBucket 或 GitHub 这样的服务是不可能的,所以我寻求一种适用于本地存储库的解决方案,或者可以与远程存储库一起使用的解决方案,而远程存储库只有有限的管理访问权限。

最佳答案

当您真的想使用 Github/Bitbucket 时,请不要授予任何人对您的存储库的写入权限。只接受 pull 请求。这样,您可以检查它包含的 merge 请求,如果您看到不想要的内容,则拒绝它们。

自动化的一种方法是创建一个本地仓库,添加一个钩子(Hook)来进行检查,然后将 pull 请求 pull 入新的本地“验证”仓库(这不应该是您的正常工作仓库,因此您可以总是把它扔掉)。

关于git - 如何防止 git 分支被 merge 到另一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25647299/

相关文章:

c - libgit2 项目或其他任何人是否提供示例代码来演示各种 libgit2 功能?

git - 强制更新当前分支 - 怎么样?

git - 显示一个文件的历史?

version-control - 你如何将 "Revision Control"与 R 的 "Workflow"结合起来?

java - 简单的基于 java 的工作流管理器/数据工作流,能够启动分机。应用程序,调用网络服务等

git - 如何根据选项名称确定要在全局配置文件中使用的正确 git 配置设置?

git - merge 不会保留对文件的更改,为什么?

git - 标记提交消息和变更集

android - 将 Android 项目提交到存储库

hadoop - 是否可以在工作流 oozie 中使用两个 "job.properties"文件?