远程分支名是自动化流程的触发开关,由git push冒号右侧字符串决定,必须严格匹配小写前缀、jira编号前置及语义化版本格式,否则导致ci不运行、jira不联动等连锁故障。

远程分支名不是“推上去就完事”的本地别名,而是团队自动化流程的触发开关——错一个字符,CI 不跑、PR 模板不填、Jira 不联动、权限系统放行错误分支。
远程分支名由 git push 冒号右边决定,和本地分支名无关
很多人误以为 git push origin feature/login-ui 会“自动对齐”本地分支名,其实 Git 完全不管左边叫什么。真正写入远程仓库的分支名,只取决于冒号 : 右侧的字符串:
-
git push origin login-feature:feature/MATERIAL-123-login→ 远程创建feature/MATERIAL-123-login -
git push origin feat-login-ui→ 远程创建feat-login-ui(CI 静默跳过) -
git push -u origin dev/login→ 远程创建dev/login(前缀dev/不被识别)
用 git ls-remote --heads origin 查真实远程分支名,别信 git branch -r ——后者只显示本地缓存的引用,可能已过期。
feature/、bugfix/、hotfix/ 前缀必须全小写且严格匹配正则
CI/CD 工具(GitHub Actions、GitLab CI、Jenkins)靠硬编码正则匹配分支名,比如 ^feature/.*$。任何偏差都会导致流程断裂:
-
Feature/login❌(首字母大写) -
feature_login❌(下划线,非斜杠) -
fix/login-error❌(fix/不在白名单) -
feature/MATERIAL-123-login✅(全小写 + 斜杠 + Jira 编号前置)
前缀还决定合并路径:feature/ 只能合入 develop;hotfix/ 必须同时合入 main 和 develop;bugfix/ 若从 release/v2.1.0 切出,就必须只合回该 release 分支。
GitHub Hosts 更新工具(仅限中国用户),安全更新系统hosts文件,保留原有非GitHub条目,仅替换GitHub相关地址。支持备份恢复和风险提示。用于解决GitHub访问问题。
Jira 编号必须前置、大小写敏感、不可拼接
CI 流水线用正则 feature/([A-Z]+-\d+)- 提取 ticket ID。漏掉、放错位置或格式错误,会导致:
- Jira ticket 状态无法自动更新(卡在 “To Do”)
- 发布说明里缺失需求上下文
- 审计时无法关联线上变更与原始需求
正确写法:feature/MATERIAL-123-search-bar;错误写法:feature/search-bar-MATERIAL-123、feature/material-123-search、feature/MAT-123-search、feature/MATERIAL-123-and-456-search。
release/ 分支只接受语义化版本或 -test 后缀
release/ 是发布窗口,不是功能容器。命名混用会直接阻断上线审批流:
-
release/v2.1.0✅(冻结代码、打 tag、走发布流程) -
release/order-integr❌(业务描述型,应为临时集成分支,命名建议改用integ/order-integr或直接删) -
release/v2.1.0-test✅(预发环境验证用,生命周期短,测试完即删)
Git 本身不限制,但发布平台(如 Jenkins Release Plugin、GitLab Release CLI)只认 v\d+\.\d+\.\d+ 格式触发构建和归档。
最常被忽略的一点:远程分支名一旦推送,就不再是个人行为——它绑定着 CI 触发规则、权限策略、PR 模板字段、Jira 自动化、甚至安全扫描的 scope 配置。重命名不是 git branch -m 加 git push --set-upstream 就能收场的事,得先查谁在跟踪它、CI 是否已缓存旧名、Jira 是否已建立链接。静默失败比报错更危险。










