《Git:从入门到精通(八)——企业级git开发相关内容》

要查看已被删除的远程分支,可通过以下方法操作:

方法 1:通过git fetch结合过滤命令查看

执行 git fetch --prune(或简写 git fetch -p),该命令会清理本地对远程已删除分支的引用,然后执行 git branch -a,此时列出的远程分支(以remotes/origin/开头)就是当前远程仓库实际存在的分支,之前已删除的远程分支引用会被移除,通过前后对比可识别已删除的远程分支。

方法 2:查看 Git 操作历史(针对本地曾跟踪过的已删除远程分支)

执行 git reflog show origin/feature-xxx(将feature-xxx替换为疑似已删除的远程分支名),可查看该远程分支的引用变更历史,若历史中存在删除操作记录,可确认该远程分支已被删除。

git branch -d 是 Git 中本地分支的命令,语法为:

功能说明:

  • 该命令会删除指定的本地分支,但有一个前提:被删除的分支必须已经完全合并到当前分支(或其他已保存的分支),否则 Git 会提示错误,防止误删未合并的代码。

强制删除未合并的分支:

如果确定要删除未合并的本地分支(可能丢失未合并的修改),可以使用强制删除命令:git branch -D <分支名>(注意是大写的 -D,本质是 -d + --force 的组合)

地分支 的命令,语法为:git branch -d <分支名>

一、企业级开发流程

企业级开发流程通常遵循需求→设计→开发→测试→发布→运维的全生命周期管理,结合 DevOps 和 CI/CD 实践实现高效迭代:

  1. 需求与设计阶段
    • 产品经理梳理业务需求,输出 PRD(产品需求文档);
    • 技术团队进行架构设计、方案评审,明确技术选型和系统边界。
  2. 开发与集成阶段
    • 开发者基于需求创建功能分支(如feature/user-login),在本地完成编码和单元测试;
    • 通过 Git 提交代码,触发 CI(持续集成) pipeline,自动执行代码检查、编译、集成测试;
    • 代码审查(Code Review)通过后,合并到开发主干(如develop分支)。
  3. 测试与预发布阶段
    • 测试团队在测试环境对集成后的功能进行系统测试、性能测试、安全测试;
    • 若需灰度验证,会在预发布环境小范围部署,模拟生产流量;
    • 测试通过后,创建预发布分支(如release/v1.2.0),准备上线。
  4. 发布与运维阶段
    • 预发布分支通过最终验证后,合并到主分支(master)并打版本标签(如v1.2.0);
    • 通过 CD(持续部署)自动推送到生产环境,运维团队持续监控系统稳定性,收集用户反馈。

二、系统开发环境

企业级系统通常划分多套隔离环境,保障开发效率与生产稳定性:

环境类型 用途说明 技术特点
开发环境 开发者日常编码、调试,集成功能分支代码 开启详细日志、错误提示;配置灵活,支持频繁变更;通常关联develop分支
测试环境 功能测试、集成测试、回归测试,模拟生产场景验证功能 与生产环境配置一致(如数据库、中间件);数据可模拟;关联releasedevelop分支
预发布环境 上线前最终验收,验证版本稳定性和兼容性 与生产环境完全一致(代码、数据、配置);独立部署,不接入线上流量;关联release分支
生产环境 正式对外提供服务的线上环境 安全性、稳定性优先;关闭调试日志,开启错误监控;仅关联master分支,且严格c

三、Git 分支设计模型

企业常用的分支模型需兼顾协作效率与版本稳定性,以下是三种主流实践:

1. Git Flow(传统稳定型)

适合版本发布周期明确的项目(如传统企业软件),分支职责清晰:

  • master:生产环境分支,只读且稳定,仅合并releasehotfix分支,每次上线打版本标签(如v1.0.0)。
  • develop:开发主干,集成所有功能分支,是feature分支的父分支。
  • feature/*:功能分支,基于develop创建,命名如feature/payment-module,开发完成后合并回develop
  • release/*:预发布分支,基于develop创建(如release/v1.0.0-202510),用于测试和上线前准备,合并到masterdevelop后删除。
  • hotfix/*:紧急修复分支,基于master创建(如hotfix/login-bug),修复线上 Bug 后合并到masterdevelop,然后删除。
2. GitHub Flow(敏捷迭代型)

适合持续交付的互联网项目(如 SaaS 产品),流程轻量:

  • 只有一个长期分支main(或master),始终保持可部署状态。
  • 所有功能开发从main创建临时分支(如feature/new-feature),开发完成后通过 Pull Request(PR)合并回main,合并后立即部署。
  • 若需紧急修复,直接从main创建hotfix分支,修复后合并并部署。
3. GitLab Flow(灵活适配型)

结合 Git Flow 和 GitHub Flow 的优点,支持多环境隔离:

  • main:主分支,对应生产环境,始终可部署。
  • feature/*/bugfix/*/hotfix/*:基于main创建,分别用于功能开发、缺陷修复、紧急修复。
  • 可选release/*分支:用于预发布测试,若项目需版本化发布则创建,否则直接从main部署。

master 分支

  • master 为主分支,该分支为只读且唯一分支。用于部署到正式发布环境,一般由合并 release 分支得到。
  • 主分支作为稳定的唯一代码库,任何情况下不允许直接在 master 分支上修改代码。
  • 产品的功能全部实现后,最终在 master 分支对外发布,另外所有在 master 分支的推送应该打标签(tag)做记录,方便追溯。
  • master 分支不可删除。

release 分支

  • release 为预发布分支,基于本次上线所有的 feature 分支合并到 develop 分支之后,基于 develop 分支创建。可以部署到测试或预发布集群。
  • 命名以 release/ 开头,建议的命名规则: release/version_publishtime。
  • release 分支主要用于提交给测试人员进行功能测试。发布提测阶段,会以 release 分支代码为基准进行提测。
  • 如果在 release 分支测试出问题,需要回归验证 develop 分支看否存在此问题。
  • release 分支属于临时分支,产品上线后可选删除。

develop 分支

feature 分支

  • develop 为开发分支,基于 master 分支创建的只读且唯一分支,始终保持最新完成以及 bug 修复后的代码。可部署到开发环境对应集群。
  • 可根据需求大小程度确定是由 feature 分支合并,还是直接在上面开发(非常不建议)。
  • feature 分支通常为新功能或新特性开发分支,以 develop 分支为基础创建 feature 分支。
  • 命名以 feature/ 开头,建议的命名规则: feature/user_createtime_feature。
  • 新特性或新功能开发完成后,开发人员需合到 develop 分支。
  • 一旦该需求发布上线,便将其删除。

实践建议

  • 中小型团队或高频迭代项目,优先选择GitHub Flow,减少分支管理成本;
  • 传统行业或版本发布周期长的项目,采用Git Flow保障版本稳定性;
  • 需区分多环境(开发 / 测试 / 生产)的企业,可基于GitLab Flow定制分支策略,结合 CI/CD 工具(如 GitLab CI、Jenkins)实现自动化部署。
相关推荐
雨奔2 小时前
Git工作流
git
liulilittle3 小时前
LwIP协议栈MPA多进程架构
服务器·开发语言·网络·c++·架构·lwip·通信
水淹萌龙3 小时前
玩转 Go 表达式引擎:expr 实战指南
开发语言·后端·golang
艾莉丝努力练剑3 小时前
【C++:继承】面向对象编程精要:C++继承机制深度解析与最佳实践
开发语言·c++·人工智能·继承·c++进阶
penguin_bark3 小时前
C++ 异步编程(future、promise、packaged_task、async)
java·开发语言·c++
小龙报3 小时前
《数组和函数的实践游戏---扫雷游戏(基础版附源码)》
c语言·开发语言·windows·游戏·创业创新·学习方法·visual studio
又是忙碌的一天3 小时前
Java基础 与运算
java·开发语言
liu****3 小时前
笔试强训(八)
开发语言·算法·1024程序员节
m0_748241233 小时前
Java注解与反射实现日志与校验
java·开发语言·python