【DevOps】Git 图文详解(九):工作中的 Git 实践

这篇具有很好参考价值的文章主要介绍了【DevOps】Git 图文详解(九):工作中的 Git 实践。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本系列包含:

  • Git 图文详解(一):简介及基础概念
  • Git 图文详解(二):Git 安装及配置
  • Git 图文详解(三):常用的 Git GUI
  • Git 图文详解(四):Git 使用入门
  • Git 图文详解(五):远程仓库
  • Git 图文详解(六):Git 利器 - 分支
  • Git 图文详解(七):标签管理
  • Git 图文详解(八):后悔药 - 撤销变更
  • Git 图文详解(九):工作中的 Git 实践

1.Git Flow

Git Flow(Git 工作流程)是指软件项目中的一种 Git 分支管理模型,经过了大量的实践和优化,被认为是现代敏捷软件开发和 DevOps(开发、技术运营和质量保障三者的交集)的最佳实践。

【DevOps】Git 图文详解(九):工作中的 Git 实践,# Git,devops,git,github,ci/cd,ci,版本控制,git flow
主分支master,稳定版本代码分支,对外可以随时编译发布的分支,不允许直接 Push 代码,只能请求合并(pull request),且只接受 hotfixrelease 分支的代码合并。

热修复分支hotfix,针对线上紧急问题、Bug 修复的代码分支,修复完后合并到主分支、开发分支。

  • ① 切换到 hotfix 分支,从 master 更新代码;
  • ② 修复 Bug;
  • ③ 合并代码到 dev 分支,在本地 Git 中操作即可;
  • ④ 合并代码到 master 分支。

【DevOps】Git 图文详解(九):工作中的 Git 实践,# Git,devops,git,github,ci/cd,ci,版本控制,git flow
发版分支release,版本发布分支,用于迭代版本发布。迭代开发完成后,合并 dev 代码到 release,在 release 分支上编译发布版本,以及修改 Bug(定时同步 Bug 修改到 dev 分支)。测试完成后,此版本可以作为发版使用,然后把稳定的代码 Push 到 master 分支,并打上版本标签。

开发分支dev,开发版本分支,针对迭代任务开发的分支,日常开发原则上都在此分支上面,迭代完成后合并到 release 分支,开发、发版两不误。

【DevOps】Git 图文详解(九):工作中的 Git 实践,# Git,devops,git,github,ci/cd,ci,版本控制,git flow
其他开发分支dev-xxx,开发人员可以针对模块自己创建本地分支,开发完成后合并到 dev 开发分支,然后删除本地分支。

2.金屋藏娇 stash

当你正在 dev 分支开发一个功能时,代码写了一半,突然有一个线上的 Bug 急需要马上修改。dev 分支 Bug 没写完,不方便提交,就不能切换到主分支去修复线上 Bug。Git 提供一个 stash 功能,可以把当前 工作区暂存区 未提交的内容 “隐藏” 起来,就像什么都没发生一样。

# 有未提交修改,切换分支时报错
$ git checkout dev
error: Your local changes to the following files would be overwritten by checkout:
        README.md
Please commit your changes or stash them before you switch branches.
Aborting
 
# 隐藏
$ git stash
Saved working directory and index state WIP on main: 2bc012c s
 
# 查看被隐藏的内容
$ git stash list
stash@{0}: WIP on main: 2bc012c s
 
# 比较一下,什么都没有,一切都没有发生过!
$ git diff
 
# 去其他分支修改bug,修复完成回到当前分支,恢复工作区
$ git stash pop

在上面示例中,有未提交修改,切换分支时报错。错误提示信息很明确了,commit 提交或 stash 隐藏:Please commit your changes or stash them before you switch branches.

📢 如果切换分支时,未提交修改的内容没有冲突,是可以成功切换的,未提交修改会被带过去。

指令
描述
git stash 把未提交内容隐藏起来,包括未暂存、已暂存。 等以后恢复现场后继续工作
git stash list 查看所有被隐藏的内容列表
git stash pop 恢复被隐藏的内容,同时删除隐藏记录
git stash save “message” git stash,可以备注说明 message
git stash apply 恢复被隐藏的文件,但是隐藏记录不删除
git stash drop 删除隐藏记录

📢 当然这里先提交到本地也是可以的,只是提交不是一个完整的功能代码,而是残缺的一部分,影响也不大。

3.拣选提交 cherry-pick

当有一个紧急 Bug,在 dev 上修复完,我们需要把 dev 上的这个 Bug 修复所做的修改 “复制” 到 master 分支,但不想把整个 dev 合并过去。为了方便操作,Git 专门提供了一个 cherry-pick 命令,让我们能复制一个特定的提交到当前分支,而不管这个提交在哪个分支

【DevOps】Git 图文详解(九):工作中的 Git 实践,# Git,devops,git,github,ci/cd,ci,版本控制,git flow
如上图,操作过程相当于将该提交导出为补丁文件,然后在当前 HEAD 上重放,形成无论内容还是提交说明都一致的提交。文章来源地址https://www.toymoban.com/news/detail-759536.html

  • 希望把 dev 分支上的 v7 提交的内容合并到 master,但不需要其他的内容。
  • master 分支上执行指令 git cherry-pick v7,会产生一个新的 v7’ 提交,内容和 v7 相同。
  • 同时更新 masterHEAD,以及工作区。
# 选择一个commit,合并进当前分支
$ git cherry-pick [commit]

到了这里,关于【DevOps】Git 图文详解(九):工作中的 Git 实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【DevOps 工具链】在Windows上搭建小型Git服务

    综上,选择了Gitea作为Git服务器。Gitea是采用Go作为后端语言,并且他还支持跨平台,支持 Linux、macOS 和 Windows 以及各种架构,除了x86,amd64,还包括 ARM 和 PowerPC。后期如果购买服务器,做数据移植也方便。Gitea一个git管理工具,类似构建自己的github,但是github仓库需要公开要

    2024年02月04日
    浏览(25)
  • DevOps系列文章 之 Java使用jgit管理git仓库

    最近设计基于gitops新的CICD方案,需要通过java读写git仓库,这里简单记录下。 在jgit中,存在最核心的三个组件:Git类,Repository类。Git类中包含了push commit之类的常见git操作,而Repository则实现了仓库的初始化和基本的管理功能。 Git类的实例都会持有一个Repository实例。 Repositor

    2024年02月12日
    浏览(28)
  • DevOps运维实践分享

    作者:禅与计算机程序设计艺术 DevOps(Development and Operations) 是一种新的软件开发方式,是指在IT行业中将应用程序开发与IT运营工作流程紧密结合的方法论。DevOps鼓励自动化、精益创新、持续交付及与客户的紧密合作。通过软件工程方法来降低产品开发和运营的总体风险,

    2024年02月07日
    浏览(31)
  • 《DevOps实践指南》- 读书笔记(一)

    DevOps 的三步工作法 :流动、反馈以及持续学习与实验。 流动原则 :它加速了从开发、运维到交付给客户的流程。 反馈原则 :它使我们能建设出更安全可靠的工作体系。 持续学习与实验原则 :它打造出一种高度信任的文化和一种科学的工作方式,并将对组织的改进和创新

    2024年02月09日
    浏览(31)
  • 《DevOps实践指南》- 读书笔记(二)

    如何在组织中迈开 DevOps 转型的第一步?谁需要参与?如何组建团队?如何保障团队成员投入精力并在最大程度上获得成功机会?本章将回答这些问题。 本部分重点讨论如下话题 : 选择合适的价值流作为切入点 ; 理解待转型价值流中的工作 ; 参考康威定律设计组织架构

    2024年02月09日
    浏览(33)
  • 《DevOps实践指南》- 读书笔记(九)

    附录 1 DevOps 的大融合 我们认为 DevOps 正在得益于一场令人难以置信的管理实践大融合,各种实践相互促进和衔接在一起,并形成了一种独特的实践集合,它能对组织的软件开发转型和 IT 产品或服务交付模式的转型产生极大的帮助。 John Willis 称之为“DevOps 的大融合”。下面尽

    2024年02月07日
    浏览(28)
  • 《DevOps实践指南》- 读书笔记(八)

    在前几章中,我们讨论了如何构建从代码提交到发布的快速工作流,以及反向的快速反馈流。我们还探索了加强组织学习和放大微弱故障信号的文化惯例,有助于创造更安全的工作系统。 在第六部分中,我们会进一步扩展这些活动,不仅实现开发和运维目标,还要同时实现信

    2024年02月07日
    浏览(29)
  • Devops之制品库平台实践-nexus

    实战名称 💘 实践:配置Maven代理仓库(测试成功)-2022.6.7 💘 实践:创建Maven本地仓库(依赖)-2022.6.10(测试成功) 💘 实践:创建Raw本地仓库(制品)(测试成功)-2022.6.10 💘 实践:使用管理页面上传制品(测试成功)-2023.6.27 💘 实践:使用mvn命令上传制品(自定义pom信息(灵

    2024年02月09日
    浏览(26)
  • Eolink实践 | 基于DevOps的持续测试策略

    DevOps 如今在企业中显的尤其重要。想要获得成功我们就需要制定好的测试策略来实践。 DevOps 的一个重要组成部分是持续集成/持续交付(CI/CD)。在CI和CD之间,应该是持续测试。 如果不进行持续测试,将会出现: 缺陷的泄漏 软件延期交付 客户不满意 可以提供更快的反馈 提供

    2024年02月01日
    浏览(28)
  • DevOps与CI/CD的最佳实践

    在当今的软件开发领域,DevOps(开发与运维的结合)和CI/CD(持续集成/持续交付)已经成为了不可或缺的一部分。它们不仅提高了软件开发的效率,还帮助团队更快地交付高质量的软件。本文将深入探讨DevOps文化和CI/CD的关键概念,以及它们如何改善软件开发流程。 DevOps是一

    2024年02月08日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包