09-基于功能分支的工作流
前面介绍了一种最基本的团队工作模型所有人都工作在master上写完了的commit可以通过push来发送到中央仓库并且可以使用pull来获取到别人的最新commits。这种工作模型解决了团队合作最基本的问题多人并行开发和版本管理。事实上这也是早期的 VCS——中央式 VCS 的工作模型。但这种工作模型也有它的限制使用这种工作模型时每个人的代码在被大家看到的时候就是它进入正式的生产库的时候。所有人的工作都会被直接push到master这导致每个人的代码在正式启用前无法被别人看到严格来讲是有办法的别人可以直接从你的电脑上pullGit 的「分布式」不是说说的。但——这种做法超级不方便这样就让代码在正式启用前的讨论和 review审阅非常不方便。现在的商业团队开发项目多是采用「边开发边发布、边开发边更新、边开发边修复」的持续开发策略所以代码分享的不便会极大地影响团队的开发效率。接下来要介绍的是目前最流行的团队开发的工作流Feature Branching。简介这种工作流的核心内容可以总结为两点任何新的功能feature或 bug 修复全都新建一个branch来写branch写完后合并到master然后删掉这个branch。这就是工作流最基本的模型。从上面的动图来看这种工作流似乎没什么特别之处。但实质上Feature Branching 这种工作流为团队开发时两个关键的问题——代码分享和一人多任务——提供了解决方案。1. 代码分享假设你在一个叫做「掘金」的团队工作现在你要开发一个叫做「掘金小册」的功能呵呵于是你创建了一个新的branch叫做books然后开始在books上进行开发工作。git checkout -b books在十几个commits 过后「掘金小册」的基本功能开发完毕你就把代码push到中央仓库例如 GitHub去然后告诉同事「嘿小册的基本功能写完了分支名是books谁有空的话帮我 review 一下吧。」git push origin books然后你的同事明明正好有空他就从中央仓库拉下来了你的代码开始读# 明明的电脑 git pull git chekcout books读完以后明明对你说说嗯我看完了我觉得不错可以合并到master于是你就把books合并到了master上去git checkout master git pull # merge 之前 pull 一下让 master 更新到和远程仓库同步 git merge books紧接着你把合并后的结果push到了中央仓库并删掉了books这个branchgit push git branch -d books git push origin -d books # 用 -d 参数把远程仓库的 branch 也删了如果同事有意见上面讲的是明明对你的代码没有意见而假如他在你的代码里看到了问题例如他跑来对你说「嘿你的代码缩进为什么用的是 TAB快改成空格不然砍死你哦。」这时你就可以把你的缩进改成空格然后做一个新的提交再push上去然后通知他「我改完啦」明明pull下来你的新提交看了看「嗯这下可以合并了。」于是你依照上面的那一套操作把代码合并进master并push了上去然后删掉了books。瞧代码在同事竖大拇指之前都不会正式发布到master挺方便的吧Pull Request事实上上面讲的这个流程还可以利用 Pull Request 来进一步简化。Pull Request 并不是 Git 的内容而是一些 Git 仓库服务提供方例如 GitHub所提供的一种便捷功能它可以让团队的成员方便地讨论一个branch并在讨论结束后一键合并这个branch到master。同样是把写好的branch给同事看使用 Pull Request 的话你可以这样做把branchpush到中央仓库在中央仓库处创建一个 Pull Request。以 GitHub 为例然后你的同事就可以在 GitHub 上看到你创建的 Pull Request 了。他们可以在 GitHub 的这个页面查看你的commits也可以给你评论表示赞同或提意见你接下来也可以根据他们的意见把新的commitspush上来这也页面会随着你新的push而展示出最新的commits。在讨论结束以后你们一致认为这个branch可以合并了你只需要点一下页面中那个绿色的 Merge pull request 按钮GitHub 就会自动地在中央仓库帮你把branch合并到master了然后你只要在本地pull一下把最新的内容拉到你的电脑上这件事情就算完成了。另外GitHub 还设计了一个贴心的 Delete branch 按钮方便你在合并之后一键删除branch。2. 一人多任务除了代码分享的便捷基于 Feature Branch 的工作流对于一人多任务的工作需求也提供了很好的支持。安安心心做事不被打扰做完一件再做下一件自然是很美好的事但现实往往不能这样。对于程序员来说一种很常见的情况是你正在认真写着代码忽然同事过来跟你说「内个……你这个功能先放一放吧我们最新讨论出要做另一个更重要的功能你来做一下吧。」其实虽然这种情况确实有点烦但如果你是在独立的branch上做事切换任务是很简单的。你只要稍微把目前未提交的代码简单收尾一下然后做一个带有「未完成」标记的提交例如在提交信息里标上「TODO」然后回到master去创建一个新的branch就好了。git checkout master git checkout -b new_feature上面这两行代码有更简单的操作方式不过为了小册内容的简洁性我就不引入更多的内容了有兴趣的话可以自己搜索一下。如果有一天需要回来继续做这个branch你只要用checkout切回来就可以继续了。小结这一节介绍了 Feature Branching 这种工作流。它的概念很简单每个新功能都新建一个branch来写写完以后把代码分享给同事看写的过程中也可以分享给同事讨论。另外借助 GitHub 等服务提供方的 Pull Request 功能可以让代码分享变得更加方便分支确定可以合并后把分支合并到master并删除分支。这种工作流由于功能强大而且概念和使用方式都很简单所以很受欢迎。再加上 GitHub 等平台提供了 Pull Request 的支持目前这种工作流是商业项目开发中最为流行的工作流。

相关新闻

langchain1.X学习笔记-18-智能体高级用法之详解ToolStrategy策略的tool_message_content参数和handle_errors参数

langchain1.X学习笔记-18-智能体高级用法之详解ToolStrategy策略的tool_message_content参数和handle_errors参数

文章目录 1 tool_message_content参数 1.1 参数含义 1.2 模型初始化 1.3 示例(默认情况) 1.4 示例(自定义tool_message_content) 2 handle_errors参数 2.1 参数含义 2.2 模型初始化 2.3 设置为True/False/固定字符串 2.3.1 handle_errors设置为True 2.3.2 handle_errors设置为F…

2026/8/12 18:55:37 阅读更多 →
Blender Python插件开发:自动化场景集合管理实战教程

Blender Python插件开发:自动化场景集合管理实战教程

在Blender中进行复杂场景管理时,你是否曾为成百上千个零散的物体感到头疼?手动将它们一个个拖拽到不同的集合(Collection)里,不仅效率低下,还容易出错。特别是当场景由程序化生成或外部导入时,物…

2026/8/12 18:54:37 阅读更多 →
收购技术尽调:目标站点全国可达性快速评估

收购技术尽调:目标站点全国可达性快速评估

收购技术尽调:目标站点全国可达性快速评估工具地址:https://www.speedce.com 社区论坛:https://bbs.speedce.com 联系:speedceadsgmail.com写在前面 本文围绕「收购技术尽调」展开,提供可落地的技术方案,并…

2026/8/12 18:54:37 阅读更多 →

最新新闻

FasterLivePortrait终极指南:3种方法快速上手实时肖像驱动AI

FasterLivePortrait终极指南:3种方法快速上手实时肖像驱动AI

FasterLivePortrait终极指南:3种方法快速上手实时肖像驱动AI 【免费下载链接】FasterLivePortrait Bring portraits to life in Real Time!onnx/tensorrt support!实时肖像驱动! 项目地址: https://gitcode.com/gh_mirrors/fa/F…

2026/8/12 21:46:28 阅读更多 →
华为防火墙核心概念与实战排障:安全区域、策略、会话表与ASPF详解

华为防火墙核心概念与实战排障:安全区域、策略、会话表与ASPF详解

1. 防火墙技术概述:从边界守卫到智能防御 在今天的网络环境中,防火墙早已不是那个简单的“包过滤路由器”了。它更像是一个集成了深度包检测、应用识别、威胁情报和访问控制于一身的“网络交通警察”兼“安全分析师”。特别是像华为防火墙这样的企业级产…

2026/8/12 21:46:28 阅读更多 →
Tines 3B 安全自动化平台:低代码工作流部署与实战指南

Tines 3B 安全自动化平台:低代码工作流部署与实战指南

这次我们来看一个名为 Tines 3B 的项目。它不是我们常见的图像生成或语音克隆模型,而是一个专注于“安全的工作流自动化”的平台。简单来说,它的核心目标是:在“人人都在构建软件”的时代,让非技术背景的团队成员也能安全、高效地…

2026/8/12 21:46:28 阅读更多 →
SSH六层纵深防御体系:从攻击链透视到实战加固

SSH六层纵深防御体系:从攻击链透视到实战加固

最近在整理服务器安全配置时,发现很多团队对 SSH 的认知还停留在“改个端口、禁用 root”的层面。一旦攻击者突破这层薄弱的防御,内网几乎门户大开。基于多次安全审计和应急响应的经验,我系统梳理了从攻击者视角到防御者视角的完整 SSH 加固体…

2026/8/12 21:46:28 阅读更多 →
AI数据中心能耗危机:从天然气电厂看算力增长的碳足迹挑战

AI数据中心能耗危机:从天然气电厂看算力增长的碳足迹挑战

1. 先搞清楚一个数据中心电厂,为什么能成为“最大污染源”看到“最大气候污染源”这个标题,很多人第一反应可能是某个巨型化工厂或燃煤电厂。但这次的主角,是亚马逊在得克萨斯州数据中心配套的天然气发电厂。这背后反映的,是一个被…

2026/8/12 21:46:28 阅读更多 →
C++Builder 6 完整安装与配置指南:从资源获取到项目维护

C++Builder 6 完整安装与配置指南:从资源获取到项目维护

1. 项目概述:CBuilder 6的“考古”与“复活”最近在整理一些老旧的工业控制上位机项目源码时,又翻出了那个熟悉的文件夹——里面躺着用CBuilder 6(以下简称BCB6)开发的工程文件。这让我想起,时至今日,依然有…

2026/8/12 21:45:28 阅读更多 →

日新闻

Ubuntu 22.04安装与使用tree命令:高效管理Linux目录结构

Ubuntu 22.04安装与使用tree命令:高效管理Linux目录结构

1. 为什么需要一个“目录树”工具?在Linux世界里,尤其是Ubuntu这样的发行版,命令行是很多人的主战场。我们每天都要和文件、目录打交道。ls命令是查看目录内容的首选,它简洁、高效,能列出文件名、权限、大小等关键信息…

2026/8/12 9:33:34 阅读更多 →
博思AI智能体:意图识别、思考链与性能优化的工程实践

博思AI智能体:意图识别、思考链与性能优化的工程实践

在AI应用从“能用”走向“好用”的进程中,系统的响应速度、决策透明度与高并发稳定性是决定用户体验的关键。博思AI智能体近期完成了一次重要的专项优化,聚焦于意图识别、思考链展示与全链路压测三大核心领域,将系统从功能实现推向了工程卓越…

2026/8/12 9:33:34 阅读更多 →
子代理架构:AI智能体任务分解与协同执行的核心原理与实践

子代理架构:AI智能体任务分解与协同执行的核心原理与实践

1. 项目概述:为什么我们需要“子代理”?最近在折腾各种AI应用和自动化流程时,我越来越频繁地遇到一个瓶颈:单个AI智能体(Agent)的能力边界。无论是处理复杂的多步骤任务,还是需要同时调用多个专…

2026/8/12 9:33:34 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/12 1:11:09 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/12 1:11:09 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/12 1:11:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/11 17:09:45 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/12 1:11:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/11 17:09:45 阅读更多 →