当前位置: 首页 > news >正文

git 禁止dev合并到任何其他分支

创建 pre-merge-commit 钩子

导航到 Git 仓库的钩子目录:

cd /path/to/your/repo/.git/hooks

创建或编辑 pre-merge-commit 钩子:
在这里插入图片描述
也可以通过指令创建

nano pre-merge-commit

在钩子文件中添加以下代码:

#!/bin/sh# 获取当前分支名称
current_branch=$(git symbolic-ref --short HEAD)# 获取即将合并的分支名称
merging_branch=$(git rev-parse --abbrev-ref MERGE_HEAD)# 检查是否正在尝试将 dev 分支合并到其他分支
if [ "$merging_branch" = "dev" ]; thenecho "Error: Merging the 'dev' branch into any other branch is not allowed."exit 1
fi# 允许合并继续
exit 0

使钩子脚本可执行:

chmod +x pre-merge-commit

测试 pre-merge-commit 钩子

尝试将 dev 分支合并到其他分支:

git checkout other-branch
git merge dev

预期结果:合并操作会被中止,并显示错误信息:

Error: Merging the 'dev' branch into any other branch is not allowed.

尝试将其他分支合并到当前分支:

git merge feature-branch

预期结果:合并操作应该成功进行。

补充说明

上述 pre-merge-commit 钩子只在生成合并提交前运行,因此如果 dev 分支的合并是快速合并(fast-forward merge),钩子不会被触发。为确保所有合并操作都被检查,可以同时创建 pre-merge 钩子来处理快速合并的情况:和上面操作一样,不过是从pre-merge-commit换成了pre-merge钩子

http://www.lryc.cn/news/389243.html

相关文章:

  • 第二节:如何使用thymeleaf渲染html(自学Spring boot 3.x的第一天)
  • 计算机相关术语科普之什么叫网关(Gateway)
  • B站网页部分API
  • 使用Spring Boot和Spring Security保护你的应用
  • CVE-2019-12272 Openwrt可视页面LuCi命令注入漏洞复现(完结)
  • 【多线程开发 4】从源码学习LockSupport
  • gameui C++的代码
  • 1.什么是js?特点是什么?组成部分?
  • 爬虫是什么?
  • 深入理解Presto分页查询:方法与最佳实践
  • 如何使用Go语言中的并发函数实现网络爬虫的分布式部署?
  • STM32第九课:DHT11温湿度传感器
  • JVM线上监控环境搭建Grafana+Prometheus+Micrometer
  • MyBatis(17)MyBatis 如何处理枚举类型
  • 云数据中心运维新纪元:让Linux服务器如虎添翼
  • C# 多线程造成CPU占用率高
  • 谈谈在不同公司中的SAP职位
  • 服务器连接不上
  • 论文辅导 | 基于贝叶斯优化-卷积神经网络-双向长短期记忆神经网络的锂电池健康状态评估
  • 安卓实现微信聊天气泡
  • 软件测试(功能、接口、性能、自动化)详解 | 测试人生路
  • 【面试题】网络IO模型
  • 数据结构-----【链表:基础】
  • 如何在pycharm里面运行pytest用例
  • Charles抓包工具踩坑记录
  • 【RabbitMQ实战】邮件发送(直连交换机、手动ack)
  • python 笔试面试八股(自用版~)
  • 《SpringBoot+Vue》Chapter04 SpringBoot整合Web开发
  • 腾讯地图异步调用
  • 通过docker overlay2 目录名查找占用磁盘空间最大的容器名和容器ID