图解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)清理无用分支。

目录
相关文章
|
1天前
|
开发工具 git 开发者
vscode+git解决远程分支合并冲突
通过这些详细步骤,您可以掌握如何使用VSCode和Git高效地解决远程分支合并冲突,提高开发效率和代码质量。希望这些内容对您的学习和工作有所帮助。
118 86
|
27天前
|
开发工具 git 开发者
图解Git——分布式Git《Pro Git》
分布式工作流程主要分为三种模式:集中式工作流、集成管理者工作流和主管与副主管工作流。集中式工作流中,所有开发者同步同一个中央仓库,通过拉取和提交协作;集成管理者工作流中,开发者拥有自己的仓库,通过 `fork` 和请求合并进行协作;主管与副主管工作流适用于大型项目,由主管最终合并代码,副主管负责各自模块。贡献代码时,需考虑活跃贡献者数量、工作流程、提交权限等因素,确保代码合并成功并遵循提交准则。
40 11
|
27天前
|
网络安全 Apache 开发工具
图解Git——服务器上的Git《Pro Git》
Git 远程仓库及通信协议简介:远程仓库为团队协作提供平台,支持共享代码。常见形式为裸仓库,仅保存 Git 元数据。Git 支持多种协议,包括本地协议(适合局域网)、HTTP/HTTPS(推荐智能 HTTP,安全易用)、SSH(企业内部协作首选)和 Git 协议(高效只读访问)。选择协议需根据协作需求、安全性和配置难度权衡。此外,搭建 Git 服务器涉及创建裸仓库、上传至服务器、初始化共享仓库等步骤。生成 SSH 公钥、配置服务器及使用 GitWeb 或 GitLab 等工具可进一步增强功能。第三方托管服务如 GitHub 提供便捷的托管选项,适合快速启动和开源项目。总结而言,自行运行服务器提
37 11
|
27天前
|
自然语言处理 开发工具 git
图解Git——变基《Pro Git》
变基(rebase)是Git中用于将一系列提交“重新播放”到另一个分支上的操作,使提交历史更加线性整洁。其基本操作为`git rebase <目标分支>`,可将当前分支的修改基于目标分支重新应用;复杂场景下使用`git rebase --onto <新基底> <旧基底> <分支>`,将特定提交从旧基底移动到新基底。
45 10
|
27天前
|
存储 缓存 Java
图解Git——远程分支《Pro Git》
远程分支是 Git 中用于管理分布式协作的关键概念。远程引用指向远程仓库中的分支和标签,常用 `git ls-remote` 或 `git remote show` 查看。日常开发中,通常使用远程跟踪分支(如 `origin/main`)与远程分支交互,简化远程仓库状态的管理和使用。远程跟踪分支记录远程分支的状态,但本身只读。
25 6
|
9月前
|
JSON 开发工具 git
git rebase 合并当前分支的多个commit记录
git rebase 合并当前分支的多个commit记录
196 1
|
开发工具 git
git 操作之合并其它分支的某次提交(commits)到当前分支
git cherry-pick合并其它分支的某次提交(commits)到当前分支
460 0
|
开发工具 git
【Git】一文带你入门Git分布式版本控制系统(创建合并分支、解决冲突)
【Git】一文带你入门Git分布式版本控制系统(创建合并分支、解决冲突)
145 0
【Git】一文带你入门Git分布式版本控制系统(创建合并分支、解决冲突)
|
数据可视化 Go 开发工具
cggit 简化 Git 提交、合并、分支偏移小神器,提升开发、修BUG效率!
cggit 简化 Git 提交、合并、分支偏移小神器,提升开发、修BUG效率!
378 0
|
开发工具 git
GIT合并分支的三种方法
GIT合并分支的三种方法
1997 0