图解Git——分支开发工作流《Pro Git》

简介: 分支开发工作流利用Git的分支功能,支持灵活的项目管理。长期分支如`master`和`develop`分别保存稳定和开发中的代码;短期主题分支用于开发单一特性或修复问题,完成后合并到主分支。此模式确保代码稳定性,支持并行开发、便于审查和灵活调整。建议维护明确的长期分支,保持主题分支短小精悍,并定期清理无用分支。配置上可保护关键分支,遵循命名规范。

分支开发工作流

由于分支管理的便捷, 才衍生出这些典型的工作模式,你可以根据项目实际情况选择。

1. 长期分支

  • 适用于持续开发和发布周期长的项目。常见的长期分支包括:
    1. master:只保留稳定的代码,通常用于生产环境。
    2. developnext:用于开发中的功能,可能不稳定,但在达到一定稳定性后可以合并到 master 分支中。
  • 在此模式下,开发者可以创建不同的分支来处理新功能或修复问题,并定期将这些分支合并到 developmaster 分支中,保持项目进度和稳定性。

1.1. 趋于稳定分支的线型图:

  • 通常把他们想象成流水线(work silos)可能更好理解一点,那些经过测试考验的提交会被遴选到更加稳定的流水线上去。

  • 编辑

1.2. 趋于稳定分支的流水线(“silo”)视图

  • 可以用这种方法维护不同层次的稳定性。 一些大型项目还有一个 proposed(建议) 或 pu: proposed updates(建议更新)分支,它可能因包含一些不成熟的内容而不能进入 next 或者 master 分支。 这么做的目的是使你的分支具有不同级别的稳定性;当它们具有一定程度的稳定性后,再把它们合并入具有更高级别稳定性的分支中。 再次强调一下,使用多个长期分支的方法并非必要,但是这么做通常很有帮助,尤其是当你在一个非常庞大或者复杂的项目中工作时。

  • 编辑


2. 主题分支

  1. 一种短期分支,通常用于开发单个功能或处理特定问题。这种模式下,开发者可以创建多个独立的分支来处理不同任务,每个分支专注于一个独立的特性或改动,开发完成后再合并回主分支。主题分支允许快速的上下文切换,使得不同功能或问题的开发不会互相干扰,且合并时不影响主分支。
  2. 示例:
    1. 编辑

    2. 合并了 dumbideaiss91v2 分支之后的提交历史

    3. 编辑


3. ⭐总结

3.1. 概念/定义

分支开发工作流是利用 Git 的强大分支功能,灵活管理项目开发的方式。通过短期和长期分支的结合,可以更好地组织代码,确保代码稳定性并支持团队协作。


3.2. 基本操作

3.2.1. 长期分支

  • 定义:用于维护不同稳定性级别的代码,例如:
    • master 分支:仅包含完全稳定或已发布的代码。
    • developnext 分支:包含正在开发或测试中的代码。
    • 其他如 proposed 分支:用于存储不成熟或待验证的更新。
  • 特点:定期将主题分支合并到更高稳定性的分支中。

3.2.2. 主题分支

  • 定义:短期分支,用于开发单一特性或解决单个问题。
  • 特点
    • 灵活性:可以随时创建、合并、删除主题分支。
    • 上下文独立:每个主题分支专注于特定目标,方便审查和管理。
    • 保留时间:改动可以在主题分支中保留任意时长,待成熟后再合并。

3.2.3. 操作示例

  • 创建分支开发方案:
    • master 创建 iss91 分支,工作到 C4。
    • 创建 iss91v2 进行第二种方案的尝试。
    • 临时创建 dumbidea 分支测试新的想法。
  • 合并分支后历史示例:最终合并 iss91v2dumbidea,抛弃 iss91 分支。

3.3. 优点/好处

  • 并行开发:支持多个任务同时进行,互不干扰。
  • 代码稳定性:通过分支间的逐步合并,确保主分支稳定。
  • 便于审查:分支聚焦特定任务,改动清晰易懂。
  • 灵活调整:随时切换分支或丢弃不合适的方案,最大限度保留有效成果。

3.4. 风险/注意事项

  • 本地分支操作:未推送的分支操作仅在本地生效,需同步到远程仓库以便团队协作。
  • 分支过多:分支数量庞大时需定期清理,避免代码库冗杂。
  • 合并冲突:频繁操作可能导致冲突,需及时解决。

3.5. 使用建议

  • 长期分支策略:为不同稳定性级别的代码维护明确的长期分支(如 masterdevelop)。
  • 小步快跑:尽量使主题分支短小精悍,单一任务完成后及时合并或删除。
  • 团队协作:推送主题分支到远程仓库,让团队成员了解进度或进行协作。

3.6. 配置建议(如适用)

  • 分支保护:保护 master 或关键分支,避免直接提交,强制通过 Pull Request 合并。
  • 分支命名规范:遵循如 feature/xxxhotfix/xxx 的分支命名规范,便于团队理解和管理。
  • 分支清理工具:定期使用工具或命令(如 git branch -dgit branch -r)清理无用分支。

目录
相关文章
|
13小时前
|
开发工具 git 开发者
图解Git——分支简介《Pro Git》
Git 分支是其核心特性之一,允许开发者从主开发线分离工作,避免干扰主线。传统版本控制系统创建分支效率低,而Git的分支创建和切换非常轻量高效。
15 3
|
13小时前
|
开发工具 git
图解Git——分支的新建与合并《Pro Git》
在Git开发中,新建与合并分支是常见的操作。以实际开发为例:为实现新需求创建分支`iss53`进行开发;遇紧急Bug时,切换至线上分支创建`hotfix`修复并合并回线上分支,再切换回`iss53`继续工作。完成`iss53`后,切换到`master`合并。若出现冲突,使用`git status`查看,手动编辑解决冲突后标记为已解决并提交。图形化工具如`git mergetool`也可辅助解决冲突。
15 4
|
13小时前
|
安全 开发工具 git
图解Git——分支管理《Pro Git》
分支管理是 Git 中的重要机制,支持并行开发和清晰的工作流。常用命令包括:`git branch` 列出所有分支,`git branch -v` 查看最后一次提交,`git branch --merged` 和 `git branch --no-merged` 分别查看已合并和未合并的分支。创建新分支用 `git branch <branch-name>`,删除分支用 `git branch -d`(已合并)或 `-D`(强制删除)。建议定期清理已完成任务的分支,保持代码库整洁,并使用有意义的分支命名规范。注意强制删除未合并分支时可能丢失数据。
14 0
|
13小时前
|
开发工具 git 开发者
图解Git——分布式Git《Pro Git》
分布式工作流程主要分为三种模式:集中式工作流、集成管理者工作流和主管与副主管工作流。集中式工作流中,所有开发者同步同一个中央仓库,通过拉取和提交协作;集成管理者工作流中,开发者拥有自己的仓库,通过 `fork` 和请求合并进行协作;主管与副主管工作流适用于大型项目,由主管最终合并代码,副主管负责各自模块。贡献代码时,需考虑活跃贡献者数量、工作流程、提交权限等因素,确保代码合并成功并遵循提交准则。
11 1
|
8月前
|
存储 算法 开发工具
Git - 分支基本实践总结与工作流原理
Git - 分支基本实践总结与工作流原理
115 0
|
存储 开发工具 git
Git分支使用方法
前言 分支是指在同一个代码仓库中的不同版本线。它们可以被用来同时开展不同的开发任务、修复bug或实现新功能,而不会影响到主要的代码线。每个分支都可以独立地进行修改、提交和合并操作。 一、查看可用分支 在终端或命令提示符中,导航到你的Git项目所在的目录,使用 cd 命令切换目录; 可以使用以下命令查看当前仓库中已存在的分支:
196 0
|
数据可视化 开发工具 Android开发
Git开发——创建分支
Git开发——创建分支
441 0
Git开发——创建分支
|
开发工具 git
|
测试技术 持续交付 调度
Git 进阶系列 | 2. Git 中的分支策略
Git 进阶系列 | 2. Git 中的分支策略
170 0
Git 进阶系列 | 2. Git 中的分支策略
|
敏捷开发 Java Linux
关于Git分支工作流的一些笔记
今天和小伙伴们分享一些Git分支工作流的笔记 学习的原因,希望通过学习了解大型项目的如何使用Git管理 博文为《Pro Git》读书笔记整理 感谢开源这本书的作者和把这本书翻译为中文的大佬们 理解不足小伙伴帮忙指正,书很不错,感兴趣小伙伴可以去拜读下
205 0
关于Git分支工作流的一些笔记