2024年理解 Git 分支管理最佳实践,彻底剖析JVM类加载机制系列

一线互联网大厂Java核心面试题库

image

正逢面试跳槽季,给大家整理了大厂问到的一些面试真题,由于文章长度限制,只给大家展示了部分题目,更多Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等已整理上传,感兴趣的朋友可以看看支持一波!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  1. 在生产环境中发现一个 bug,从 master 上分离出一个热修复分支 hotfix/bug1,并在上面进行修复、测试并在预发布环境中验证,当都验证通过之后将分支重新合并回 develop 及 master,并在 master 上打一个热修复 tag v0.1.1,最后删除 hotfix/bug1;

    1
    

    2

    3

    4

    5

    6

    7

    8

    9

    10

    git checkout -b hotfix/bug1 master
    

    …修复bug…ing…

    git checkout develop

    git merge --no-ff hotfix/bug1

    git checkout master

    git merge --no-ff hotfix/bug1

    git tag v0.1.1

    git branch -d hotfix/bug1

  2. 在 feature/f2 分支上的功能 f2 已经开发并测试完成,然后将 feature/f2 合并回 develop,并删除 feature/f2,此时已经存在新功能 f1 的预发布分支 release/0.2,所以需要等待其发布完成之后才能创建预发布分支 release/0.3;

    1
    

    2

    3

    git checkout develop
    

    git merge --no-ff feature/f2

    git branch -d feature/f2

  3. 预发布分支 release/0.2 在预发布环境中完全测试通过,随时可以部署到生产环境。但在部署到生产环境之前,需要将分支合并回 develop 及 master,并在 release/0.2 上打一个正式发布版本的 tag v0.2,最后删除 release/0.2;

    1
    

    2

    3

    4

    5

    6

    git checkout develop
    

    git merge --no-ff release/0.2

    git checkout master

    git merge --no-ff release/0.2

    git tag v0.2

    git branch -d release/0.2

  4. 当前已经不存在 release/* 预发布分支,所以可以开始功能 f2 的预发布上线。创建预发布分支 release/0.3,并部署预发布环境测试;

    1
    

    git checkout -b release/0.3 develop
    

  5. 分支 release/0.3 测试通过,将 release/0.3 合并回 develop 及 master,然后在 master 上打一个正式发布版本的 tag v0.3,最后删除 release/0.3;

Git Flow


上述过程中未使用到 git flow,均是以约定的规范流程进行,大家可以尝试使用 git flow 来管理分支。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

#初始化 git flow

设置 feature、release、hotfix、tag 的前缀名

git flow init

#开始一个新功能 f1 的开发,以 develop 为基准创建 feature/f1

git flow feature start f1

#…

#…f1 功能开发中…

#…

#新功能 f1 开发完成

合并回 develop

删除 feature/f1 分支

git flow feature finish f1

#开始新功能 f1 的预发布验证,版本定为 0.2

git flow release start 0.2

#新功能 f1 预发布验证通过

合并到 master 分支

在 release 上打 tag v0.2

将 tag v0.2 合并到 develop 分支

删除 release/0.2 分支

git flow release finish 0.2

惊喜

最后还准备了一套上面资料对应的面试题(有答案哦)和面试时的高频面试算法题(如果面试准备时间不够,那么集中把这些算法题做完即可,命中率高达85%+)

image.png

image.png

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

57569)]

[外链图片转存中…(img-uQm0wogm-1715264957570)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值