【Java】Java核心 83:Git 教程(6)分支介绍

简介: 内容我们现在使用Git可以简单理解为阶段性的使用Git保存一下自己写的代码,每次提交形成一个版本信息。但是你能想象出当一个团队所有人提交的版本信息汇集到一起后是什么样子吗?那版本的数量是数以千计的。尽管Git提供了一系列的操作帮助我们完成版本的操作,但是最终架不住版本太多看着乱啊。

10.分支操作-分支介绍


目标
能说分支作用
内容

我们现在使用Git可以简单理解为阶段性的使用Git保存一下自己写的代码,每次提交形成一个版本信息。但是你能想象出当一个团队所有人提交的版本信息汇集到一起后是什么样子吗?那版本的数量是数以千计的。尽管Git提供了一系列的操作帮助我们完成版本的操作,但是最终架不住版本太多看着乱啊。


比如说张三是一个成熟的开发者,他做完一个模块提交一个版本,李四是一个入行一年的开发者,他做完一个功能提交一个版本,这都是可以接受的,你要碰到王五这种刚刚入行的,他恨不得一个文件提交一个版本,甚至写一个方法就提交一个版本,那Git中管理的版本真的就要数以万计了。


其实理想的情况应该是这样的,张三开发功能A,在A没有完全制作完成之前不要提交版本,等做完了再一次性提交所有的文件。这样每一个版本都是具有非常高的价值的,不会出现大量无效的提交。什么叫无效提交?你一个模块8个类配合在一起工作,你写完一个类提交一个版本,回头不管是回滚也好,对版本进行管理也好,单独一个类自己不能构成一个完整的开发状态,你回滚到这个版本你发现不能用,再换一个还是缺文件,这就让人很崩溃了。


但是作为开发者来说,我打版本也是为了自己用的方便,我写点备份一点,看上去也很合理。这个时候就提出了一个新的需求,能不能我自己提交自己专用的版本,而不要和项目组的核心代码掺和在一起呢?这个功能必须有,这就是下面要说的分支。


那么在说分支前,我们说一下之前的提交到底是什么?

提交的本质:记录仓库中一组文件的变化信息(增、删、改)

分支是什么?

分支就是多次提交串起来的一条线

c99424ad42404a4d86f7dd8a878189b6.png

场景:问题背景:要开发一个新功能,又不想打扰目前分支(main)的功能开发,于是

97e267fe3f4145759dc2ec077ad94a1c.png可以看到 main 分支的开发并不会停止,可以继续进行 c4 这个功能的开发,而 new 分支可以开发新功能 c5,同样不会影响 main

等 new 分支的功能开发测试没有问题了,main 也想要 new 的代码怎么办?

16d7b4817f834274917246c949a139fd.png

可以使用 merge 命令将 new 分支的变动合并至 main 分支,此时的 c6 中既包含了 c4 以来的修改,也包括了 c5 的修改,这时如果觉得 c5 已经没用了,可以将它删除



我们分支讲解主要包含

- 创建分支
- 切换分支
- 合并分支
- 查看分支
- 删除分支

小结

根据自己的理解说一下分支是什么,它有什么作用

分支就是多次提交组成的一条线

作用:可以让我们在团队开发时更加方便


总结 分支的作用

并行开发:通过创建分支,可以在同一个代码库中同时进行多个独立的开发任务。每个分支都有自己的代码变更记录,独立于其他分支。这样可以让团队成员并行地开发不同的功能或修复不同的问题,而不会相互干扰。


版本管理:分支使得对代码进行版本管理和追踪变得更加灵活。每次提交的变更都可以通过分支进行隔离,并形成一条完整的提交历史。这样,在需要时可以方便地查看和比较不同分支下的代码修改,也能轻松地回退到之前的某个版本。


功能开发与测试:通过为新功能或修复创建专门的分支,可以将其与主分支(通常是master或main分支)隔离开来。这种方式可以确保新功能的开发和测试不会影响到主分支上的稳定代码。一旦新功能完成且经过测试,再将其合并回主分支。


错误修复与维护:当在主分支上发现错误或需要进行紧急修复时,可以创建新的分支来处理修复工作。这样可以让团队专注于在该分支上进行错误修复,同时仍然可以继续在其他分支上进行正常的开发工作。修复完成后,可以将该分支合并回主分支,使得修复代码生效。


版本发布和部署:通过对特定版本进行打标签(Tag),可以在代码库中创建一个明确的发布点。通常,这些打标签行为会与稳定的主分支关联,以便方便地跟踪和管理不同版本的代码。利用分支,可以在不影响生产环境的情况下,将某个特定版本的代码部署到测试或生产服务器上。

相关文章
|
1天前
|
JSON 开发工具 git
git rebase 合并当前分支的多个commit记录
git rebase 合并当前分支的多个commit记录
|
1天前
|
算法 Java Python
保姆级Java入门练习教程,附代码讲解,小白零基础入门必备
保姆级Java入门练习教程,附代码讲解,小白零基础入门必备
|
1天前
|
Web App开发 JavaScript 测试技术
《手把手教你》系列技巧篇(四十五)-java+ selenium自动化测试-web页面定位toast-上篇(详解教程)
【5月更文挑战第9天】本文介绍了在Appium中处理App自动化测试中遇到的Toast元素定位的方法。Toast在Web UI测试中也常见,通常作为轻量级反馈短暂显示。文章提供了两种定位Toast元素的技巧.
10 0
|
2天前
|
开发工具 git
git 如何删除本地和远程分支
git 如何删除本地和远程分支
12 0
|
2天前
|
Web App开发 缓存 前端开发
《手把手教你》系列技巧篇(四十四)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-下篇(详解教程)
【5月更文挑战第8天】这篇文档介绍了如何在IE、Chrome和Firefox浏览器中处理不信任证书的问题。作者北京-宏哥分享了如何通过编程方式跳过浏览器的证书警告,直接访问不受信任的HTTPS网站。文章分为几个部分,首先简要介绍了问题背景,然后详细讲解了在Chrome浏览器中的两种方法,包括代码设计和运行效果,并给出了其他浏览器的相关信息和参考资料。最后,作者总结了处理此类问题的一些通用技巧。
16 2
|
2天前
|
存储 开发工具 git
|
2天前
|
Ubuntu Linux 开发工具
|
2天前
|
Java Android开发
【Java开发指南 | 第十八篇】Eclipse安装教程
【Java开发指南 | 第十八篇】Eclipse安装教程
11 2
|
2天前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(四十三)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-上篇(详解教程)
【5月更文挑战第7天】本文介绍了如何在Java+Selenium自动化测试中处理浏览器对不信任证书的处理方法,特别是针对IE、Chrome和Firefox浏览器。在某些情况下,访问HTTPS网站时会遇到证书不可信的警告,但可以通过编程方式跳过这些警告。
13 1
|
2天前
|
前端开发 Java 测试技术
《手把手教你》系列技巧篇(四十二)-java+ selenium自动化测试 - 处理iframe -下篇(详解教程)
【5月更文挑战第6天】本文介绍了如何使用Selenium处理含有iframe的网页。作者首先解释了iframe是什么,即HTML中的一个框架,用于在一个页面中嵌入另一个页面。接着,通过一个实战例子展示了在QQ邮箱登录页面中,由于输入框存在于iframe内,导致直接定位元素失败。作者提供了三种方法来处理这种情况:1)通过id或name属性切换到iframe;2)使用webElement对象切换;3)通过索引切换。最后,给出了相应的Java代码示例,并提醒读者根据iframe的实际情况选择合适的方法进行切换和元素定位。
9 0