首页 > 其他分享 >图解Git——分支开发工作流《Pro Git》

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

时间:2025-01-21 18:50:00浏览次数:1  
标签:Git Pro 合并 稳定性 开发 master 图解 代码 分支

分支开发工作流

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

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

标签:Git,Pro,合并,稳定性,开发,master,图解,代码,分支
From: https://www.cnblogs.com/cikiss/p/18684129

相关文章

  • 图解Git——远程分支《Pro Git》
    ​远程分支远程引用:远程引用是远程仓库中分支、标签等的指针,可以通过gitls-remote或gitremoteshow查看。但在日常开发中,更常用远程跟踪分支(如origin/main)与远程分支交互,简化了对远程仓库状态的管理和使用。远程跟踪分支:它是本地Git对远程分支状态的一个......
  • 图解Git——变基《Pro Git》
    ​变基1.变基的由来回顾之前分支合并分叉的提交历史​编辑通过合并操作来整合分叉的历史​编辑有一种方法:你可以提取在C4中引入的补丁和修改,然后在C3的基础上应用一次。在Git中,这种操作就叫做变基(rebase)。你可以使用rebase命令将提交到某一分......
  • 图解Git——服务器上的Git《Pro Git》
    ​协议1.Git远程仓库及通信协议概述1.1.远程仓库的重要性作用:提供协作平台,支持团队共享代码,即使主机离线,其他人仍可访问。常见形式:裸仓库(不含工作目录,仅保存Git元数据)。2.Git支持的协议类型1.本地协议适用场景:在同一台主机或共享文件系统(如NFS)上使用。......
  • 图解Git——分布式Git《Pro Git》
    ​分布式工作流程CentralizedWorkflow(集中式工作流)​编辑所有开发者都与同一个中央仓库同步代码,每个人通过拉取、提交来合作。如果两个开发者同时修改了相同的文件,后一个开发者必须在推送之前合并其他人的更改。Integration-ManagerWorkflow(集成管理者工作流)​编辑......
  • 图解Git——分支简介《Pro Git》
    ​分支简介1.分支的重要性作用:分支允许将工作从主开发线上分离,避免影响主线开发。传统版本控制的劣势:创建分支通常需要复制整个项目文件,效率低下。Git的优势:分支是Git的“必杀技特性”,创建和切换分支都非常轻量和高效,几乎瞬间完成。2.Git分支的核心概念2.1.数据......
  • 图解Git——分支的新建与合并《Pro Git》
    ​⭐分支的新建与合并先引入一个实际开发的工作流:开发某个网站。为实现某个新的需求,创建一个分支。在这个分支上开展工作。正在此时,你突然接到一个电话说有个很严重的问题需要紧急修补。你将按照如下方式来处理:切换到你的线上分支(productionbranch)。为这个紧急任务新......
  • Company Azul Product Zulu OpenJDK vs. Oracle JDK
    TechnologiesOverviewCassandraKafkaSolrElasticsearchHadoop&HBaseSparkIgniteHazelcastTomcatJBoss -[DifferencesBetweenOpenJDKvsOracleJDK|Azul](https://www.azul.com/products/core/jdk-comparison-matrix/)Product&FeaturesProd......
  • git 使用总结
    https://gitee.com/****************.gitgitconfig--globaluser.name'***'gitconfig--globaluser.email'f******@gmail.com'git--version查看版本originhttps://gitee.com/f*****************.git(fetch)originhttps://gitee.com/********......
  • The directory <Project>\aaa is registered as a Git root, but no Git repositorie
    aaa是一个单独被git管理的项目,把删除其中的.git,后把它移动到一个bbb项目跟目录下(其也已经被git管理),然后报错:Thedirectory<Project>\aaaisregisteredasaGitroot,butnoGitrepositorieswerefoundthere. 根据你的描述,出现这个错误的原因是因为开发工具仍然......
  • ProtChat:融合大语言模型与蛋白质语言模型的自动化蛋白质分析工具
    近年来,大语言模型(LLMs)在自然语言处理领域取得了巨大进展,极大地提升了人机交互的效率和精准度。而在计算生物学中,蛋白质序列被类比为自然语言,基于此的蛋白质大语言模型(PLLMs)也应运而生。然而,PLLMs的应用往往需要复杂的预处理和脚本开发,这使得非计算背景的研究人员难以充分利用其潜......