欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 版本控制器Git(3)

版本控制器Git(3)

2025/3/13 13:04:46 来源:https://blog.csdn.net/2301_80392199/article/details/146213645  浏览:    关键词:版本控制器Git(3)

文章目录

  • 前言
  • 一、分支管理策略
  • 二、Bug分支管理
    • 遇到Bug时的处理方法
    • 使用 git stash 暂存工作区内容
    • 创建并切换到Bug修复分支
    • 恢复之前的工作
  • 三、临时分支的删除
  • 总结


前言

  我们在上篇讲到了分支,现在我们就着这个继续来讲解!


一、分支管理策略

master分支稳定性:

  • master 分支应当保持非常稳定,主要用于发布新版本。日常开发工作不应该直接在这个分支上进行,以确保其始终处于可部署状态。

dev分支作为开发主线:

  • 日常开发工作应在 dev 分支上进行。这个分支可以包含不稳定的变化和实验性的功能。
  • 当准备发布一个新版本时,将 dev 分支合并到 master 分支,并在 master 上打标签标识版本号。

个人分支与团队合作:

  • 团队成员应基于 dev 分支创建自己的特性分支来完成特定任务或实现新功能。每个成员都可以自由地在各自的分支上工作,然后定期将更改合并回 dev 分支。
  • 这样一来,团队合作的分支结构就会形成一个主干(dev),周围环绕着多个临时分支,代表不同的开发活动或特性实现。

在这里插入图片描述
日常开发环境:

  • 开发人员提交的代码,还未经过测试验证
  • 不稳定,存在bug
  • dev分支

线上环境:

  • APP、网站
  • 稳定
  • master主分支

测试流程:

  • 经过一系列测试,最终将稳定的代码合并到master上

二、Bug分支管理

遇到Bug时的处理方法

在这里插入图片描述
  场景描述:假设你正在 dev2 分支上进行开发,但突然发现 master 分支存在一个需要立即修复的bug。根据最佳实践,不应该直接在 master 分支上修复问题,而是应该创建一个专门用于修复bug的临时分支。

使用 git stash 暂存工作区内容

  暂存当前工作:当你在 dev2 分支的工作尚未完成且无法提交时,可以使用 git stash 命令将当前工作区的信息储藏起来。这允许你在不提交的情况下切换分支,并确保稍后可以恢复这些更改。

在这里插入图片描述
  git stash:执行此命令后,Git会保存所有已经被追踪文件的修改,例如对 ReadMe 文件所做的编辑。

在这里插入图片描述

  检查stash内容:git stash list:查看当前存储的所有stash记录,确认哪些改动被保存

创建并切换到Bug修复分支

  创建bug分支:从 master 分支创建一个新的分支来专门解决发现的问题。比如修复 ReadMe 文件中少一个字母c导致的bug。

  完成修复后,记得提交更改并合并回 master 分支
在这里插入图片描述

恢复之前的工作

  恢复工作区状态:修复完bug之后,你需要回到 dev2 分支继续未完成的工作。由于之前使用了 git stash,你现在可以通过 git stash pop 来恢复之前的工作区状态。这不仅恢复了你的改动,同时也清除了stash记录。

  git stash pop:恢复最新的stash记录并将其从stash列表中删除。

  分支间的差异:需要注意的是,即使你在 dev2 分支上恢复了之前的工作,它仍然基于修复bug之前的 master 状态,因此 dev2 分支不会包含修复后的代码。但这不影响你在 master 上所做的修复。

在这里插入图片描述
  我们的最终目的是要让 master 合并 dev2 分支的,那么正常情况下我们切回 master 分支直接合并即可,但这样其实是有一定风险的。

  是因为在合并分支时可能会有冲突,而代码冲突需要我们手动解决(在 master 上解决)。我们无法保证对于冲突问题可以正确地一次性解决掉,因为在实际的项目中,代码冲突不只一两行那么简单,有可能几十上百行,甚至更多,解决的过程中难免手误出错,导致错误的代码被合并到 master 上。

  解决这个问题的一个好的建议就是:最好在自己的分支上合并下 master ,再让 master 去合并dev ,这样做的目的是 有冲突可以在本地分支解决并进行测试,而不影响 master 。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、临时分支的删除

  • 在软件开发过程中,新功能的添加是一个持续不断的需求。为了确保主分支(通常是 main 或 master)的稳定性,不会因为实验性质的代码而受到影响,每开发一个新的功能时建议创建一个独立的分支,通常称之为 feature 分支。

  • 这个分支用于隔离新功能的开发工作,直到该功能完成并经过测试后,再将其合并回主分支。之后,可以安全地删除 feature 分支,以保持仓库的整洁。

  然而,有时候项目需求会发生变化。例如,如果你正在某个 feature 分支上开发新功能,但中途被要求停止开发——这可能是由于优先级的变化或其他原因——那么即使这部分工作尚未完成或合并,也需要删除这个 feature 分支。

  在这种情况下,使用常规的 git branch -d 命令是不够的,因为它只允许删除已经被合并过的分支。对于未合并的分支,你需要使用强制删除命令

git branch -D [分支名]

  此命令会立即删除指定的分支,无论它是否已经合并。

  分支机制为开发者提供了极大的灵活性和安全性。假设你着手开发一个预计需要两周才能完成的新功能,在开发的第一周内你可能只完成了50%的工作。

  此时,如果你直接在主分支上提交不完整的代码,可能会干扰团队中其他成员的工作;相反,如果你等到全部完成后再一次性提交,又面临着丢失每日进度的风险。

  通过创建个人专属的分支,你可以自由地进行开发,不受他人工作的干扰,同时也不会影响到别人。你可以随时提交更改,保护每天的工作进度。一旦开发完成并通过了必要的审查和测试,就可以将你的分支合并回主分支。


总结

  Git 的分支操作非常高效,无论是创建、切换还是删除分支,都能在一秒钟内完成,不论版本库包含多少文件。
  利用 Git 的分支功能来管理不同阶段和类型的开发工作流,是一种既便捷又高效的方法~

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词